KVC—–valueForKeyPath 被你忽视的用法
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"];
//如果数组中的是对象:比如person对象,Person类有个age属性,同样:
NSNumber *min = [array valueForKeyPath:@"@min.age"];
...
1. 系统属性值获取
NSArray *array = @[@"name", @"w", @"aa", @"jimsa"];
NSLog(@"%@", [array valueForKeyPath:@"uppercaseString"]);
输出
(
NAME,
W,
AA,
JIMSA
)
2. 去除重复元素
NSArray *array = @[@"name", @"w", @"aa", @"jimsa", @"aa"];
NSLog(@"%@", [array valueForKeyPath:@"@distinctUnionOfObjects.self"]);
打印
(
name,
w,
jimsa,
aa
)
3. 快速找出字典中的元素
NSArray *array = @[@{@"name" : @"cookeee",@"code" : @1},@{@"name": @"jim",@"code" : @2},@{@"name": @"jim",@"code" : @1},@{@"name": @"jbos",@"code" : @1}];
NSLog(@"%@", [array valueForKeyPath:@"name"]);
打印
(
cookeee,
jim,
jim,
jbos
)
4. 给私有属性复制 例如改变TextFiled的placeholder的文本颜色
[searchField setValue:[UIColor whiteColor] forKeyPath:@"_placeholderLabel.textColor"];