- (id)valueForKeyPath:(NSString *)keyPath 用法总结
来源:互联网 发布:算法的概念教案 编辑:程序博客网 时间:2024/05/20 12:46
可能大家对- (id)valueForKeyPath:(NSString *)keyPath
方法不是很了解。 其实这个方法非常的强大,举个例子:
NSArray *array = @[@"name", @"w", @"aa", @"jimsa"];NSLog(@"%@", [array valueForKeyPath:@"uppercaseString"]);
输出
(NAME,W,AA,JIMSA)
相当于数组中的每个成员执行了uppercaseString
方法,然后把返回的对象组成一个新数组返回。既然可以用uppercaseString
方法,那么NSString的其他方法也可以,比如
[array valueForKeyPath:@"length"]
返回每个字符串长度的组成的数组。只要你能想到的成员实例方法都可以这么用。
如果你觉得这个方法就这么点功能,那就错了。还是举具体的例子
对NSNumber数组快速计算数组求和、平均数、最大值、最小值
NSArray *array = @[@1, @2, @3, @4, @10]; NSNumber *sum = [array valueForKeyPath:@"@sum.self"]; NSNumber *avg = [array valueForKeyPath:@"@avg.self"]; NSNumber *max = [array valueForKeyPath:@"@max.self"]; NSNumber *min = [array valueForKeyPath:@"@min.self"];
或者指定输出类型
NSNumber *sum = [array valueForKeyPath:@"@sum.floatValue"]; NSNumber *avg = [array valueForKeyPath:@"@avg.floatValue"]; NSNumber *max = [array valueForKeyPath:@"@max.floatValue"]; NSNumber *min = [array valueForKeyPath:@"@min.floatValue"];
剔除重复数据
NSArray *array = @[@"name", @"w", @"aa", @"jimsa", @"aa"]; NSLog(@"%@", [array valueForKeyPath:@"@distinctUnionOfObjects.self"]);
打印
( name, w, jimsa, aa )
对NSDictionary数组快速找出相应key对的值
NSArray *array = @[@{@"name": @"cookeee",@"code": @1}, @{@"name": @"jim",@"code": @2}, @{@"name": @"jim",@"code": @1}, @{@"name": @"jbos",@"code": @1}];NSLog(@"%@", [array valueForKeyPath:@"name"]);
直接得到字典中name
key对应的值组成的数组,显然比循环取值再加入到新数组中方便快捷
(cookeee,jim,jim,jbos)
同样可以嵌套使用,先剔除name
对应值的重复数据再取值
NSArray *array = @[@{@"name": @"cookeee",@"code": @1}, @{@"name": @"jim",@"code": @2}, @{@"name": @"jim",@"code": @1}, @{@"name": @"jbos",@"code": @1}]; NSLog(@"%@", [array valueForKeyPath:@"@distinctUnionOfObjects.name"]);
打印 ( cookeee, jim, jbos )
改变UITextfiedl的placeholder的颜色
[searchField setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];
比起重写
- (void)drawPlaceholderInRect:(CGRect)rect;
要方便很多 0 0
- - (id)valueForKeyPath:(NSString *)keyPath 用法总结
- 对valueForKeyPath:(NSString *)keyPath方法的理解
- NSString的用法总结
- NSString用法总结
- ios 关于valueForKeyPath 简单用法
- KVC 中的 valueForKeyPath 高级用法
- valueForKeyPath
- NSString 用法总结与陷阱
- NSString 用法总结与陷阱
- 用法总结:NSNumber、NSString、NSData
- iOS NSString 的用法总结
- 14.NSString/NSMutableString用法总结
- 用法总结:NSNumber、NSString、NSDate、NSCalendarDate、NSData
- NSString+NSMutableString+NSValue+NSAraay常见用法总结
- 用法总结:NSNumber、NSString、NSDate、NSCalendarDate、NSData
- NSString+NSMutableString+NSValue+NSAraay常见用法总结
- Objective-C------NSString、NSMutableString 基本用法总结
- 用法总结:NSNumber、NSString、NSDate、NSCalendarDate、NSData
- [UIImage resizableImageWithCapInsets:] 使用方法
- Android中的PopupWindow详解
- 日记--学习Groovy的一些感想
- 主流浏览器内核介绍(前端开发值得了解的浏览器内核历史)
- 2016.1.13
- - (id)valueForKeyPath:(NSString *)keyPath 用法总结
- Failed to write core dump. Minidumps are not enabled by default on client versions of Windows
- 优秀的Git教程
- MFC中将位图写入指定Picture控件中的两种方式
- Insert All的用法
- Android Studio:Android Studio 打包流程
- iOS性能优化三部曲(终极版)
- Swift入门———getter & setter
- 关于tomcat配置docBase和ROOT 那些事儿(一)