CoreData 排序实体 - 性能

Posted

技术标签:

【中文标题】CoreData 排序实体 - 性能【英文标题】:CoreData sorted entities - performance 【发布时间】:2012-03-14 06:35:16 【问题描述】:

我希望将我的 CoreData 实体存储在排序的数组/集合中,这样我就不必每次使用 NSSortDescriptor 进行获取时都对其进行排序。在 ios 4 及更低版本中,我相信这是我唯一的选择,但每次都对整个数据集(不仅仅是获取的结果)进行排序 - 这听起来非常低效,即使对于 ~10k 的相对较小的数据集也是如此。

在 iOS 5 中有排序集;我想知道性能提升是否足以保证放弃对 iOS 4 的支持?有什么经验可以分享吗?

【问题讨论】:

【参考方案1】:

您不需要对结果进行排序 - 您可以进行 fetch 并将 sortOrderings 传递给 fetch。如果您需要遍历关系,您可以在父节点上添加自己的方法,对子节点进行原始获取,在父关系为 self 的位置添加谓词,添加您自己的排序并返回一个不错的 NSArray : )

我的意思是,如果你可以强制使用 iOS5,那很好,但如果你需要保留 iOS 4,让数据库进行排序是非常高效的。

【讨论】:

以上是关于CoreData 排序实体 - 性能的主要内容,如果未能解决你的问题,请参考以下文章

与此上下文的 CoreData SwiftUI 错误不同的 NSManagedObjectModel

核心数据:根据实体类型对抽象实体的结果进行排序

使用 NSComparisonResult 对 CoreData 实体进行排序

NSFetchRequest 带有用于递归 CoreData 实体关系的排序描述符

CoreData - 在实体上有许多关系时的性能

自定义 NSFetchreqeust - 按子 NSSet 属性排序父实体 [MagicalRecord+Coredata]