如何根据NSFetchedResultsController中的可转换属性进行排序?

时间:2010-03-08 23:01:18

标签: cocoa core-data nsfetchedresultscontroller

我正在使用NSValueTransformers来加密我的Core Data模型中的属性(字符串,日期等),但我很确定它会干扰我的NSFetchedResultsController中的排序。

有谁知道是否有办法解决这个问题?我想这取决于排序的执行方式;如果它总是只在数据库上直接执行,那么我可能会运气不好。如果它对对象本身进行排序,那么可能有一种方法可以在排序发生之前激活转换。

我猜它直接在数据库上,因为排序对于抓取集合的子集是关键,这无论如何都是NSFetchedResultsController的主要好处。

注意:我应该补充一点,这里有一些奇怪的行为......集合不会在第一个会话(创建对象的会话)中排序,但它会在后续排序会话(对象已存在且刚刚被检索)。所以也许排序 可以使用变换,但也许有一点需要注意,它们必须首先保存或类似的东西(?)

1 个答案:

答案 0 :(得分:1)

如果您在NSFetchedResultsController内进行排序,那么它就是针对商店(即数据库)。但是,您可以在内存中对结果执行“辅助”排序,因此可以通过调用-sortedArrayUsingDescriptors:来解密

更新

我认为你的不一致行为可能是基于已经在内存中的内容与直接从磁盘中读取的内容。