高效开发iOS系列 -- 那些不为人知的KVC
2024-08-29 12:30:27
我的简书地址: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"]
。
当然,其它对象的实例方法也能够以此类推来进行调用~。
最新文章
- “我爱背单词”beta版发布与使用说明
- ios h5 app avalon tap点击事件失效及点击延迟300ms问题解决方法
- HT for Web列表和3D拓扑组件的拖拽应用
- 【代码笔记】iOS-将log日志保存到文件
- selenium python (三)鼠标事件
- Mapped Statements collection does not contain value for
- Jafka来源分析——文章
- 部署到Linux使用VS Code 开发.NET Core 应用程序
- C add
- Angular2 路由问题修复 、求解
- foreach底层机制
- MySQL InnoDB 索引原理
- PHP整理--PHP面向对象
- 基于SVG.js实现网页初始化线条描绘效果
- selenium+pyquery爬取淘宝美食100页(无头静默模式)
- 大学jsp实验七--JavaBean在JSP中的应用
- leveldb 学习记录(二) Slice
- 【Core】创建简单的Core MVC项目
- node连接myslq
- 运行SVO
热门文章
- JavaWeb应用出现HTTP 500-Unable to compile class for JSP 错误 的解决
- 解决ajax异步传输数据,return返回为undefined的问题
- Arduino驱动无源蜂鸣器发声
- 使用 Chrome 开发者工具进行 JavaScript 问题定位与调试
- Java爬虫框架调研
- ipsec在企业网中的应用(IKE野蛮模式)(转)
- ss is one another utility to investigate sockets(特适合大规模tcp链接)
- 73条日常shell命令汇总,总有一条你需要!
- 程序员,不要让自己做兔子(updated) 网上最近流传的一个笑话,关于兔子,狼还有一只老虎的,故事 我就是想打你了,还需要什么理由吗?谁让你是兔子 项目经理是这样当的
- Python之包管理工具