键值编码@UnionOfObjects

时间:2012-08-28 23:22:07

标签: iphone ios collections key-value-coding kvc

我无法弄清楚@UnionOfObjects提供的简单valueForKey:或valueForKeyPath:不能做什么。

Apple docs:

  

@unionOfObjects运算符返回包含distinct的数组   由右侧的键路径指定的属性中的对象   运营商。与“@distinctUnionOfObjects”不同,重复的对象不是   除去。以下示例返回的payee属性值   交易中的交易:

NSArray *payees = [transactions valueForKeyPath:@"@unionOfObjects.payee"];
     

生成的payees数组包含以下字符串:Green   电力,绿色电力,绿色电力,汽车贷款,汽车贷款,汽车贷款,一般   电缆,通用电缆,通用电缆,抵押贷款,按揭贷款,按揭贷款,   动物医院。

在上面的例子中,

NSArray *payees = [transactions valueForKey:@"payee"];

将返回相同的值数组,但代码更少。我错过了什么?

1 个答案:

答案 0 :(得分:3)

我能立刻想到的是它“返回一个包含......的数组”(强调我的)。所以它会很方便:

NSSet *someSet = ...;

NSArray *result = [someSet valueForKey:@"@unionOfObjects.whatever"];

因此,在Cocoa绑定的任何地方都可以使用NSSet(或其他非数组集合)将数据推送到NSArray形状的孔中。