如何有效地从 NSManagedObject 中获取属性的所有有效值?
Posted
技术标签:
【中文标题】如何有效地从 NSManagedObject 中获取属性的所有有效值?【英文标题】:How to efficiently get all valid values of an attribute from an NSManagedObject? 【发布时间】:2010-11-15 08:46:46 【问题描述】:我有一个带有“颜色”属性的核心数据对象的 iPhone 应用程序。我想获取已保存的所有颜色值的列表。一个简单的 SQL 语句 SELECT DISTINCT(color) FROM myObjectTable
就可以轻松做到这一点。在不将所有对象(可能有数千个)加载到内存中的 NSSet 的情况下,如何在 Core Data 中执行此操作?
【问题讨论】:
【参考方案1】:你可以:
1) 设置 NSFetchRequest 的 requestType 为 NSDictionaryResultType
2) NSFetchRequest 中的“setPropertiesToFetch”仅获取属性而不是整个对象。
【讨论】:
【参考方案2】:我也没有找到一个好的解决方案。但是您可以按照 Nevin 的建议获取特定属性而不是整个托管对象。
有关更多详细信息,请参阅 Apple 文档中的 Fetching Specific Values。
您将获得一个由 NSDictionary 对象组成的 NSArray,然后您可以遍历这些对象,提取您正在寻找的颜色值。
【讨论】:
以上是关于如何有效地从 NSManagedObject 中获取属性的所有有效值?的主要内容,如果未能解决你的问题,请参考以下文章