集合运算符是一个特殊的Key Path,作用于集合,可以作为参数传递给 valueForKeyPath: 方法
①简单集合运算符
@avg,@count,@max,@min,@sum
<p>
②对象运算符
比集合运算符稍微复杂,能以数组的方式返回指定的内容,一共有两种:
</p>
@distinctUnionOfObjects
@unionOfObjects
<p>
它们的返回值都是NSArray,区别是前者返回的元素都是唯一的,是去重以后的结果;后者返回的元素是全集。
</p>
例子:
@interface Product
@property (nonatomic,strong) NSString *name;
@property (nonatomic)CGFloat price;
@end
//Product 数组
NSArray *productList = ...
//获得product总个数
NSInteger count = [[productList valueForKeyPath:@"@count"] integerValue];
//获得product价格总和
CGFloat sumPrice = [[productList valueForKeyPath:@"@sum.price"] floatValue];
//获得product价格平均值
CGFloat sumPrice = [[productList valueForKeyPath:@"@avg.price"] floatValue];
//获得product价格列表
NSArray *priceList = [productList valueForKeyPath:@"@unionOfObjects.price"];
网友评论