我无法弄清楚@UnionOfObjects提供的简单valueForKey:或valueForKeyPath:不能做什么。
@unionOfObjects运算符返回包含distinct的数组 由右侧的键路径指定的属性中的对象 运营商。与“@distinctUnionOfObjects”不同,重复的对象不是 除去。以下示例返回的payee属性值 交易中的交易:
NSArray *payees = [transactions valueForKeyPath:@"@unionOfObjects.payee"];
生成的payees数组包含以下字符串:Green 电力,绿色电力,绿色电力,汽车贷款,汽车贷款,汽车贷款,一般 电缆,通用电缆,通用电缆,抵押贷款,按揭贷款,按揭贷款, 动物医院。
在上面的例子中,
NSArray *payees = [transactions valueForKey:@"payee"];
将返回相同的值数组,但代码更少。我错过了什么?
答案 0 :(得分:3)
我能立刻想到的是它“返回一个包含......的数组”(强调我的)。所以它会很方便:
NSSet *someSet = ...;
NSArray *result = [someSet valueForKey:@"@unionOfObjects.whatever"];
因此,在Cocoa绑定的任何地方都可以使用NSSet
(或其他非数组集合)将数据推送到NSArray
形状的孔中。