我有一个NSManagedObjects数组。让我们称之为物品。还有两个实体称为Group和SubGroup。我在Items和Group以及Items和SubGroup之间有多对一的关系。因此,一个Item可以属于一个组,一个组对象可以指向该组中的所有项目对象。
Items
------
group <<---> Group
subgroup <<---> SubGroup
根据用户选择我查询了Db,我有与查询匹配的项目列表。我们称之为resultArray,它存储所有Items对象。 查询是在Items实体上执行的。 我还需要显示与resultArray中的Item对象关联的组和子组的详细信息(计数,名称)。
蛮力方法是遍历并使用字典来查找唯一的 组和子组对象。我相信会有一个更好的方法,然后这个,就是找不到它。
答案 0 :(得分:3)
这是你在找什么?
NSArray *items = ...; // your array of Item objects
NSArray *groups = [items valueForKeyPath:@"@distinctUnionOfObjects.group"];
使用“键值编码”,它返回与其相关的唯一组列表 给定的项目。