在核心数据上执行NSFetchRequest
时,我希望根据自定义选择器而不是实体的某个属性对结果进行排序。我现在最好的解决方案是在执行提取后对结果使用NSSortDescriptor
。这对我来说并不理想,因为我想用一个
NSFetchedResultsController
,NSFetchedResultsController
我将无法在获取结果后对结果运行NSSortDescriptor
。
答案 0 :(得分:2)
假设您使用SQLite作为商店,那么您受限于您可以排序的内容。限制是什么可以变成SQLite order by
。
在您的情况下,您可能最好使用NSFRC作为更改监视器,然后在其前面放置NSArray
,按您希望的方式排序。这需要你做一些聪明的工作,只要改变最小化你的表重绘,但它不应该太繁重。
答案 1 :(得分:2)
使用自定义选择器进行排序意味着您需要对内存中的项目进行排序。如果您可能拥有大型数据库,这可能意味着您的应用程序会出现性能问题。也许尝试在插入时执行属性的计算,并将结果扩展为实体的新属性。