valueForKeyPath常用用法
2017-12-19 16:04
281 查看
valueForKeyPath和valueForKey有一些类似,但也有一些不同的地方。这里就简单说一下valueForKeyPath一些不同的地方。
valueForKeyPath可以深层索引所有key为id的元素
valueForKey只是一层索引
举例来说:
1、valueForKeyPath可以获取数组中的最小值、最大值、平均值、求和。代码如下:
+ (NSString *)caculateArray:(NSArray *)array
{
CGFloat sum = [[array valueForKeyPath:@"@sum.floatValue"] floatValue];
CGFloat avg = [[array valueForKeyPath:@"@avg.floatValue"] floatValue];
CGFloat max =[[array valueForKeyPath:@"@max.floatValue"] floatValue];
CGFloat min =[[array valueForKeyPath:@"@min.floatValue"] floatValue];
NSLog(@"%fn%fn%fn%f",sum,avg,max,min);
return [NSString stringWithFormat:@"%f",sum];
}
2、valueForKeyPath可以获取数组中相同key的元素
如下所示:
NSArray *arr = @[@{@"city":@"beijing",@"person":@{@"name":@"zhangsan"}},@{@"city":@"chengdu"}];
[arr valueForKeyPath:@"city"] 可以获取到city数组 @[@"beijing",@"chengdu"]
3.valueForKeyPath 可以使用. 来一层一层向下索引,当多个字典层级时,取子层级中的属性就非常简单了
NSDictionary *dict1 = @{@"dic1":@{@"dic2":@{@"name":@"lisi",@"info":@{@"age":@"12"}}}};
id res = [dict1 valueForKeyPath:@"dict1.dict2.name"];
//res = lisi
上面就有一些我用到的valueForKeyPath的用法
valueForKeyPath可以深层索引所有key为id的元素
valueForKey只是一层索引
举例来说:
1、valueForKeyPath可以获取数组中的最小值、最大值、平均值、求和。代码如下:
+ (NSString *)caculateArray:(NSArray *)array
{
CGFloat sum = [[array valueForKeyPath:@"@sum.floatValue"] floatValue];
CGFloat avg = [[array valueForKeyPath:@"@avg.floatValue"] floatValue];
CGFloat max =[[array valueForKeyPath:@"@max.floatValue"] floatValue];
CGFloat min =[[array valueForKeyPath:@"@min.floatValue"] floatValue];
NSLog(@"%fn%fn%fn%f",sum,avg,max,min);
return [NSString stringWithFormat:@"%f",sum];
}
2、valueForKeyPath可以获取数组中相同key的元素
如下所示:
NSArray *arr = @[@{@"city":@"beijing",@"person":@{@"name":@"zhangsan"}},@{@"city":@"chengdu"}];
[arr valueForKeyPath:@"city"] 可以获取到city数组 @[@"beijing",@"chengdu"]
3.valueForKeyPath 可以使用. 来一层一层向下索引,当多个字典层级时,取子层级中的属性就非常简单了
NSDictionary *dict1 = @{@"dic1":@{@"dic2":@{@"name":@"lisi",@"info":@{@"age":@"12"}}}};
id res = [dict1 valueForKeyPath:@"dict1.dict2.name"];
//res = lisi
上面就有一些我用到的valueForKeyPath的用法
相关文章推荐
- iOS中 valueForKeyPath常用用法
- iOS valueForKeyPath 用法
- valueForKeyPath的用法(本篇内容是拷贝别人的文章,因为不能转载,又感觉写的很好,所以复制了,希望作者不要见怪)
- KVC 中的 valueForKeyPath 高级用法
- valueForKeyPath计算求和、平均值、最大、最小
- valueForKeyPath的使用小结
- ios Array 数组的valueForkeypath 快速的处理以及数组的拆分
- valueForKeyPath 方法的使用
- iOS 监听控件某个属性的改变observeValueForKeyPath
- valueForKeyPath的妙用(转)
- setObjectForKey和setValueForKey的用法和区别
- iOS KVC valueForKeyPath学习心得
- iOS valueForKeyPath使用与感悟
- 轻量级KVO ——》 KVO 管理 observeValueForKeyPath
- KVO 接收变更通知 observeValueForKeyPath:ofObject:change:context:
- valueForKeyPath计算求和、平均值、最大、最小
- valueForKey与valueForKeyPath
- setValue: forKeyPath: 与 setValue: forKey: 区别
- valueForKeyPath用途
- 对valueForKeyPath:(NSString *)keyPath方法的理解