微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Realm Swift:总是将nil值排在最后

我正在使用面向iOS 8并使用Realm的 Swift 2.2编写应用程序.我允许用户使用Results.sorted(_:ascending :)基于各种可选属性对对象进行排序.这对于降序排序非常有效,但对于升序排序,首先放置nil值,这看起来不正确.许多数据库系统都有NULLS FirsT / LAST选项和CoreData,看起来它可能是 subclass NSSortDescriptor.在Realm中排序时,有没有什么方法可以始终将nil值放在最后?即使只有一个hacky策略,也会受到赞赏.

解决方法

除了Results.sorted(_:ascending :)方法为您提供的结果之外,Realm不支持结果的自定义排序.但是你可以通过连接两个查询来相当容易地编写它,甚至可以通过计算属性公开它:

var results: [MyModel] {
  let sorted = realm.objects(MyModel).sorted("...",ascending: true)
  return sorted.filter("optionalProperty != nil") +
         sorted.filter("optionalProperty == nil")
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐