代码之家  ›  专栏  ›  技术社区  ›  John Franklin

如何有效地从NSManagedObject获取属性的所有有效值?

  •  2
  • John Franklin  · 技术社区  · 14 年前

    我有一个iPhone应用程序的核心数据对象有一个“color”属性。我想得到保存的所有颜色值的列表。简单的SQL语句 SELECT DISTINCT(color) FROM myObjectTable 很容易做到。如何在核心数据中做到这一点,而不将所有对象(其中可能有数千个)加载到内存中的NSSet中?

    2 回复  |  直到 14 年前
        1
  •  2
  •   Nevin    14 年前

    你可以:

    1) 将NSFetchRequest的requestType设置为NSDictionaryResultType

    2) NSFetchRequest中的“setPropertiesToFetch”只获取属性而不是整个对象。

        2
  •  0
  •   Wolfsokta    13 年前

    我也没有找到一个好的解决办法。但正如Nevin建议的那样,您可以获取特定的属性,而不是整个托管对象。

    Fetching Specific Values 从苹果的文档中获取更多细节。

    您将得到一个NSDictionary对象的NSArray,然后可以循环遍历,提取您要查找的颜色值。