自定义排序NSFetchRequest

时间:2014-05-07 17:19:02

标签: xcode core-data nssortdescriptor

在核心数据上执行NSFetchRequest时,我希望根据自定义选择器而不是实体的某个属性对结果进行排序。我现在最好的解决方案是在执行提取后对结果使用NSSortDescriptor。这对我来说并不理想,因为我想用一个 NSFetchedResultsControllerNSFetchedResultsController我将无法在获取结果后对结果运行NSSortDescriptor

2 个答案:

答案 0 :(得分:2)

假设您使用SQLite作为商店,那么您受限于您可以排序的内容。限制是什么可以变成SQLite order by

在您的情况下,您可能最好使用NSFRC作为更改监视器,然后在其前面放置NSArray,按您希望的方式排序。这需要你做一些聪明的工作,只要改变最小化你的表重绘,但它不应该太繁重。

答案 1 :(得分:2)

使用自定义选择器进行排序意味着您需要对内存中的项目进行排序。如果您可能拥有大型数据库,这可能意味着您的应用程序会出现性能问题。也许尝试在插入时执行属性的计算,并将结果扩展为实体的新属性。