简单集合操作符
//@count: 返回一个值为集合中对象总数的NSNumber对象。
//@sum: 首先把集合中的每个对象都转换为double类型,然后计算其总和,最后返回一个值为这个总和的NSNumber对象。
//@avg: 把集合中的每个对象都转换为double类型,返回一个值为平均值的NSNumber对象。
//@max: 使用compare:方法来确定最大值。所以为了让其正常工作,集合中所有的对象都必须支持和另一个对象的比较。
//@min: 和@max一样,但是返回的是集合中的最小值。
Persion *p = [Persion new];
p.age=@"4";
Persion*p1 = [Persionnew];
p1.age=@"5";
NSArray*array1 =@[p, p1];
NSLog(@"%@", [array1 valueForKeyPath:@"@avg.age"]);//4.5
NSLog(@"%@", [array1 valueForKeyPath:@"@max.age"]);//5
NSLog(@"%@", [array1 valueForKeyPath:@"@min.age"]);//4
NSLog(@"%@", [array1 valueForKeyPath:@"@count"]);//2
获取info数据
NSDictionary *dict1 = @{@"dic1":@{@"dic2":@{@"name":@"lisi",@"info":@{@"age":@"12"}}}};
id res = [dict1 valueForKeyPath:@"dic1.dic2.info"];
NSLog(@"%@", res);//{age = 12;}
NSArray*array3 =@[@0,@2,@3,@4,@7];
NSNumber *sum = [array3 valueForKeyPath:@"@sum.self"];//16
NSNumber *avg = [array3 valueForKeyPath:@"@avg.self"];//3.2
NSNumber *max = [array3 valueForKeyPath:@"@max.self"];//7
NSNumber *min = [array3 valueForKeyPath:@"@min.self"];//0
NSLog(@"%@ %@ %@ %@",sum,avg,max,min);
获取相同key的数据组成的数组
NSArray*array4 =@[@{@"name":@"xiaoming",
@"code":@1},
@{@"name":@"judy",
@"code":@2},
@{@"name":@"judy",
@"code":@3},
@{@"name":@"xiaohua",
@"code":@4}];
NSLog(@"%@", [array4 valueForKeyPath:@"name"]);//(xiaoming,judy,judy,xiaohua)
对象操作符
NSLog(@"%@", [array4 valueForKeyPath:@"@unionOfObjects.name"]);//(xiaoming,judy,judy,xiaohua)
NSLog(@"%@", [array4 valueForKeyPath:@"@distinctUnionOfObjects.name"]);//(xiaoming,judy,xiaohua)
转为大写字母
NSArray *array5 = @[@"xiaoming", @"xiaohua", @"zhangshan", @"lisi"];
NSLog(@"%@", [array5 valueForKeyPath:@"uppercaseString"]);
修改占位符的颜色
[textField setValue:[UIColor redColor] forKeyPath:@"placeholderLabel.textColor"];
网友评论