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