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")
}

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...