gpt4 book ai didi

swift - Realm swift : always put nil values last in sort

转载 作者:搜寻专家 更新时间:2023-10-30 22:12:52 31 4
gpt4 key购买 nike

我正在使用 Swift 2.2 编写一个针对 iOS 8 并使用 Realm 的应用程序。我允许用户使用 Results.sorted(_:ascending:) 根据各种可选属性对对象进行排序。这对于降序排序非常有效,但对于升序排序,nil 值放在第一位,这看起来不正确。许多数据库系统都有一个 NULLS FIRST/LAST 选项,使用 CoreData,看起来有可能 subclass NSSortDescriptor .在 Realm 中排序时,有没有办法始终将 nil 值放在最后?即使只有一个 hacky 策略,也将不胜感激。

最佳答案

除了 Results.sorted(_:ascending:) 方法提供的功能外,Realm 不支持对 Results 进行自定义排序。但是您可以通过连接两个查询来相当轻松地自己编写它,甚至可以通过计算属性公开它:

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

关于swift - Realm swift : always put nil values last in sort,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37374068/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com