如何有效地从 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 中获取属性的所有有效值?的主要内容,如果未能解决你的问题,请参考以下文章

如何有效地从 JSON 列中提取字段?

SWT 如何有效地从 SelectionListener 访问其他控件

如何有效地从点创建线串?

如何有效地从python中的日期中减去年份?

如何有效地从 php 中的平面结构构建树?

如何有效地从大型数据框字典中提取同一列? (性能警告)