那么Apple建议不要在NSFetchRequest中使用谓词和排序描述符吗?

时间:2010-06-12 09:54:41

标签: iphone core-data

来自docs

  

总结一下,如果你执行一个   直接取,你通常应该   不添加基于Objective-C的谓词   或者将描述符排序到fetch   请求。相反,你应该申请   这些是获取的结果。如果   你可以使用数组控制器   需要子类NSArrayController这样   你可以让它没有通过排序   持久性存储的描述符   而是在你之后进行排序   数据已被提取。

我不明白。在获取请求中使用它们有什么问题?回到一大堆托管对象只是为了在内存中挑选出1%的托管对象,留下99%的垃圾漂浮在周围是不是很愚蠢?按照您需要的顺序从持久性存储中获取您真正需要的内容不是更好吗?可能我确实弄错了......

1 个答案:

答案 0 :(得分:3)

文档是指基于Objective-C的谓词或排序描述符。这与您在引用的文档的同一页面中可用的示例中看到的标准谓词或排序描述符不同。

例如,使用

+ (NSPredicate *)predicateWithBlock:(BOOL (^)(id evaluatedObject, NSDictionary *bindings))block;

构建谓词允许您使用Objective-C来实现用于选择对象的块。由于块的复杂性可能是任意高的,在这种情况下,Apple建议首先获取所有对象,然后应用这些过滤器。