iOS开发笔记>> kvc的keypath中集合运算符怎么使用?

简单说一下: 

KVC集合运算符, 返回strings, number或dates

@count: 返回一个值为集合中对象总数的NSNumber对象

@sum: 首先把集合中的每个对象都转换成double类型, 然后计算其总数, 最后返回一个值为这个总和的NSNumber对象

@avg: 把集合中的每个对象都转换成double类型, 然后计算其总数, 最后返回一个值为这个集合中所有对象总和的平均值的NSNumber对象

@max: 使用compare: 方法来确定最大值. 所以为了让其正常工作, 集合中所有的对象都必须支持和另一个对象的比较

@min: 和@max一样, 但是返回的是集合中的最小值


代码如下: 

一个product类

<span style="font-size:14px;">@interface Product : NSObject
@property NSString *name;
@property double price;
@property NSDate *launchedOn;
@end
</span>


数据如下: 

name: iphone 5              price: $199            Launch Date: September 21, 2012

           ipad Mini                       $329                                   November 2, 2012

           Mac Book Pro               $1699                                 June 11, 2012

           iMac                              $1299                                 November 2, 2012


那么使用KVC键值路径的运算符操作, 可以得到数组个数, 价格总格, 均价和最早发布日期

<span style="font-size:14px;">[products valueForKeyPath:@"@count"]; // 4
[products valueForKeyPath:@"@sum.price"]; // 3526.00
[products valueForKeyPath:@"@avg.price"]; // 881.50
[products valueForKeyPath:@"@max.price"]; // 1699.00
[products valueForKeyPath:@"@min.launchedOn"]; // June 11, 2012
</span>

可以这样理解, 以其中一个为例. @sum.price, price是product的一个属性. @sum的@符号意味着后面将进行运算, @sum通知KVC机制进行总和计算. 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值