【发布时间】:2014-04-28 23:57:30
【问题描述】:
我有一个包含多个属性的 Core Data 对象,其中一个称为 Category。这是一个可以取任何值的字符串,我不能保证预先知道任何知识。我想运行一个提取,它将返回一个类别值列表,这些值在其标记值与给定值匹配的所有存储元素之间共享。我不确定如何最好地描述这一点,所以这里有一个例子:
ObjectNumber Tag Category
---------------------------------
01 AAA Red
02 AAA Green
03 AAA Blue
04 BBB Blue
05 BBB Red
06 BBB Yellow
07 CCC Blue
08 CCC Yellow
09 CCC Red
我希望获取的结果是一个类别列表,这些类别在其标签位于集合 {AAA, BBB, CCC} 中的所有对象之间共享,在这种情况下,它将返回 ["Red", "Blue "],因为这些是标签在给定集合中的任何对象之间共享的唯一类别。
我希望尽可能快地找到一些东西,因为当这个应用程序在一个真实的项目上运行时,数据库中会有数以万计的对象。
【问题讨论】:
-
Phil 您是否尝试过使用
NSPredicate进行抓取? -
我有,但我不知道如何设置它以将结果限制在我需要的范围内。
-
我认为这需要超越 NSPredicate 进入 SQL,以便简单地获取作为一组获取对象的属性的字符串数组。否则,处理 NSPredicate 的结果。根据我对 NSFetchRequest 和其他 Core Data 事物的有限研究,Apple 建议进行后处理以获得更细粒度的结果。
-
Tom,这就是我在 Android 中实现这一目标的方式。我希望找到一种方法来使用谓词,但我觉得你是对的。
-
@PhilRingsmuth 我会尽快发布答案! :)
标签: ios objective-c core-data nspredicate nsfetchrequest