我的简书地址:http://www.jianshu.com/p/a6a0abac1c4a

valueForKeyPath


本篇来解说一下那些不为人知,也常常被忽略掉,而且非常有用的KVC干货小技巧

获取数组里的,最大、最小、平均、求和


        NSArray *array = @[@"1",@"3",@2,@9.5,@"1.2"];
NSNumber *sum = [array valueForKeyPath:@"@sum.floatValue"];
NSNumber *avg = [array valueForKeyPath:@"@avg.floatValue"];
NSNumber *max = [array valueForKeyPath:@"@max.floatValue"];
NSNumber *min = [array valueForKeyPath:@"@min.floatValue"]; NSLog(@"sum:%@",sum);
NSLog(@"avg:%@",avg);
NSLog(@"max:%@",max);
NSLog(@"min:%@",min);

删除反复数据


 NSArray *array = @[@"name", @"w", @"aa", @"zxp", @"aa"];
//返回的是一个新的数组
NSArray *newArray = [array valueForKeyPath:@"@distinctUnionOfObjects.self"];
NSLog(@"%@", newArray);

相同能够嵌套使用,先剔除name相应值的反复数据再取值


NSArray *array = @[
@{@"title":@"zxp",@"name":@"zhangxiaoping"},
@{@"title":@"zxp2",@"name":@"zhangxiaoping2"},
@{@"title":@"zxp",@"name":@"zhangxiaoping3"},
@{@"title":@"zxp",@"name":@"zhangxiaoping"}];
//依据name字段,来进行反复删除。
NSArray *newArray = [array valueForKeyPath:@"@distinctUnionOfObjects.name"];//假设要依据title字段来删除重名的写法为`@distinctUnionOfObjects.title`
NSLog(@"%@", newArray);
/*print:
(
zhangxiaoping3,
zhangxiaoping2,
zhangxiaoping
)
是一个字符串数组
*/

进行实例方法的调用


NSArray *array = @[@"name", @"w", @"aa", @"ZXPing"];
NSLog(@"%@", [array valueForKeyPath:@"uppercaseString"]);

相当于数组中的每一个成员运行了uppercaseString方法。然后把返回的对象组成一个新数组返回。既然能够用uppercaseString方法,那么NSString的其它方法也能够,比方[array valueForKeyPath:@"length"]

当然,其它对象的实例方法也能够以此类推来进行调用~。

最新文章

  1. “我爱背单词”beta版发布与使用说明
  2. ios h5 app avalon tap点击事件失效及点击延迟300ms问题解决方法
  3. HT for Web列表和3D拓扑组件的拖拽应用
  4. 【代码笔记】iOS-将log日志保存到文件
  5. selenium python (三)鼠标事件
  6. Mapped Statements collection does not contain value for
  7. Jafka来源分析——文章
  8. 部署到Linux使用VS Code 开发.NET Core 应用程序
  9. C add
  10. Angular2 路由问题修复 、求解
  11. foreach底层机制
  12. MySQL InnoDB 索引原理
  13. PHP整理--PHP面向对象
  14. 基于SVG.js实现网页初始化线条描绘效果
  15. selenium+pyquery爬取淘宝美食100页(无头静默模式)
  16. 大学jsp实验七--JavaBean在JSP中的应用
  17. leveldb 学习记录(二) Slice
  18. 【Core】创建简单的Core MVC项目
  19. node连接myslq
  20. 运行SVO

热门文章

  1. JavaWeb应用出现HTTP 500-Unable to compile class for JSP 错误 的解决
  2. 解决ajax异步传输数据,return返回为undefined的问题
  3. Arduino驱动无源蜂鸣器发声
  4. 使用 Chrome 开发者工具进行 JavaScript 问题定位与调试
  5. Java爬虫框架调研
  6. ipsec在企业网中的应用(IKE野蛮模式)(转)
  7. ss is one another utility to investigate sockets(特适合大规模tcp链接)
  8. 73条日常shell命令汇总,总有一条你需要!
  9. 程序员,不要让自己做兔子(updated) 网上最近流传的一个笑话,关于兔子,狼还有一只老虎的,故事 我就是想打你了,还需要什么理由吗?谁让你是兔子 项目经理是这样当的
  10. Python之包管理工具