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 中按字母顺序获取记录的主要内容,如果未能解决你的问题,请参考以下文章

CoreData:基于关系的 NSPredicate

在 Swift 中使用 NSPredicate 对 CoreData 结果进行排序

在 Swift 中使用 NSPredicate 显示 CoreData 的结果

CoreData:NSPredicate 按日期过滤

有没有办法根据存储在 CoreData 中的实际值来设置 NSPredicate?

iOS CoreData NSPredicate 未清除