代码之家  ›  专栏  ›  技术社区  ›  dontWatchMyProfile

那么,苹果是否建议不要在nsfetchrequest中使用谓词和排序描述符?

  •  1
  • dontWatchMyProfile  · 技术社区  · 14 年前

    docs :

    不过,如果您执行 直接获取,通常应该 不添加基于目标C的谓词 或对提取的描述符进行排序 请求。相反,你应该申请 这些都是为了获取结果。如果 您可以使用数组控制器 需要对nsarraycontroller进行子类划分,因此 你可以让它不通过分类 持久存储的描述符 而是在 已获取数据。

    我不明白。在提取请求中使用它们有什么问题?仅仅为了在内存中挑选1%的托管对象,而让99%的垃圾四处飘荡,这样做难道不愚蠢吗?只从持久存储中获取您真正需要的东西,按照您需要的顺序,不是更好吗?可能是我弄错了…

    1 回复  |  直到 14 年前
        1
  •  3
  •   Massimo Cafaro    14 年前

    文档涉及基于目标C的谓词或排序描述符。这与您在引用的文档同一页的示例中看到的标准谓词或排序描述符不同。

    例如,使用

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

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