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

时间:2010-11-15 08:46:46

标签: iphone core-data ios

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

2 个答案:

答案 0 :(得分:2)

你可以:

1)将NSFetchRequest的requestType设置为NSDictionaryResultType

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

答案 1 :(得分:0)

我还没有找到一个好的解决方案。但是你可以像Nevin建议的那样获得特定属性而不是整个托管对象。

有关详细信息,请参阅Apple文档中的Fetching Specific Values

您将获得一个NSD阵列的NSDictionary对象,然后您可以循环,提取您正在寻找的颜色值。