加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 05:00:36 所属栏目:百科 来源:网络整理
导读:我正在使用面向iOS 8并使用Realm的 Swift 2.2编写应用程序.我允许用户使用Results.sorted(_:ascending :)基于各种可选属性对对象进行排序.这对于降序排序非常有效,但对于升序排序,首先放置nil值,这看起来不正确.许多数据库系统都有NULLS FIRST / LAST选项和
我正在使用面向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")
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读