1

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

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

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

注意:我应该补充一点,这里有一些奇怪的行为......集合不会在第一个会话(创建对象的会话)中排序,但它会在后续会话中排序(对象已经存在并且只是正在检索)。因此,也许排序确实适用于可转换对象,但可能需要注意的是必须先保存它们或类似的东西(?)

4

1 回答 1

1

如果您在其中进行排序,NSFetchedResultsController那么它是针对存储(即数据库)的。但是,当结果在内存中时,您可以对结果执行“二级”排序,因此可以通过调用-sortedArrayUsingDescriptors:

更新

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

于 2010-03-08T23:14:52.487 回答