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") } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |