NSPredicate 在 CoreData 中按字母顺序获取记录
Posted
技术标签:
【中文标题】NSPredicate 在 CoreData 中按字母顺序获取记录【英文标题】:NSPredicate to fetch records in alphabetical order in CoreData 【发布时间】:2014-09-03 10:53:53 【问题描述】:我正在尝试从实体中获取记录,记录超过 5000 条。所以我想获取按字母顺序排序(名称参数)的记录,而不是使用 NSSortDescriptor 对结果数组进行排序。
我们可以放置任何谓词来按字母顺序排列 fetech 记录。
【问题讨论】:
【参考方案1】:在NSFetchRequest *fetchRequest
中设置NSSortDecriptor
,就像使用任何谓词一样
[fetchRequest setSortDescriptors:@[[[NSSortSDescriptor alloc] initWithKey:@"name parameter" ascending:YES]]];
这意味着您的请求在获取时已经按照您的要求进行了排序。
正如 Kaszas 已经说过的,NSPredicate 不是用于排序,而是用于过滤
希望对你有帮助
【讨论】:
【参考方案2】:斯威夫特 4.0
let sortDescriptor = NSSortDescriptor(key: "name", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
https://developer.apple.com/documentation/foundation/nssortdescriptor
【讨论】:
【参考方案3】:不,您不能使用 NSPredicate 对数组进行排序。
The NSPredicate class is used to define logical conditions used to constrain a search either for a fetch or for in-memory filtering.
【讨论】:
以上是关于NSPredicate 在 CoreData 中按字母顺序获取记录的主要内容,如果未能解决你的问题,请参考以下文章
在 Swift 中使用 NSPredicate 对 CoreData 结果进行排序
在 Swift 中使用 NSPredicate 显示 CoreData 的结果