2010-06-12 46 views
1

docs因此,Apple建议不要在NSFetchRequest中使用谓词和排序描述符?

总结,不过,如果你执行一个 直接获取数据,通常应 不添加目标为基础的C-谓词 或排序描述符的获取 请求。相反,您应该将 这些应用于获取的结果。如果 您使用的阵列控制器,可以 需要继承NSArrayController的这样 你可以把它不能通过排序 描述符的持久存储 ,而是你的 数据被取出后进行排序。

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

回答

3

该文档引用了基于Objective-C的谓词或排序描述符。这与您在引用的文档的相同页面中提供的示例中看到的标准谓词或排序描述符不同。

例如,使用

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

建立一个谓词允许您使用Objective-C来实现用于选择的对象块。由于该块的复杂性可能会很高,因此Apple建议首先获取所有对象,然后应用这些过滤器。