最近在看开发文档,看到一个不错的东西,翻译一下,以便之后理解和使用
Using Collection Operators原文参考
翻译如下:
当你发送给一个键值编码兼容的对象valueForKeyPath:消息时,你可以在key path中嵌入集合操作符。集合操作符是关键词列表中的一个,此关键词以@开头指定一个getter操作,此操作在返回之前以某种方法操作数据。默认的valueForKeyPath:的实现被NSObject提供并实现这些行为。
当key path包含集合操作符时,操作符之前的key path部分,也就是左侧key path,表明了集合所在的消息的接受者相关的操作。如果你直接发送消息给集合对象,例如数组实例,左侧key path应该被省略
操作符之后的key path部分,也就是右侧key path指定了操作符应该起作用的集合内的属性。除了@count,所有的集合操作符都需要右侧key path。如下图
集合操作符展现了三种基本的行为类型:
聚合操作符以某种方法合并集合对象,并且返回单个的数据对象,返回对象匹配右侧key path命名的属性的数据类型。@count操作符是个例外,他没有右侧key path并且总是返回NSNumber实例
数组操作符返回数组实例,此实例包含指定集合的子集 。
嵌套操作符在包含其它集合的集合中起作用,并且返回NSArray或者NSSet实例,返回值取决于操作符和嵌套的集合对象。
例子
聚合操作符
@avg
@count
@max
@min
@sum
数组操作符
@distinctUnionOfObjects
@unionOfObjects
嵌套操作符
@distinctUnionOfArrays
@unionOfArrays
@distinctUnionOfSets
具体参看上面链接的例子