高效开发iOS
轉(zhuǎn)自 ?http://www.jianshu.com/p/a6a0abac1c4a ?作者?水瓶座iOSer
?
?
valueForKeyPath
本篇來講解一下那些不為人知,也經(jīng)常被忽略掉,并且很實用的KVC干貨小技巧
獲取數(shù)組里的,最大、最小、平均、求和
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);
刪除重復(fù)數(shù)據(jù)
NSArray *array = @[@"name", @"w", @"aa", @"zxp", @"aa"]; //返回的是一個新的數(shù)組NSArray *newArray = [array valueForKeyPath:@"@distinctUnionOfObjects.self"]; NSLog(@"%@", newArray);
同樣可以嵌套使用,先剔除name對應(yīng)值的重復(fù)數(shù)據(jù)再取值
NSArray *array = @[ @{@"title":@"zxp",@"name":@"zhangxiaoping"}, @{@"title":@"zxp2",@"name":@"zhangxiaoping2"}, @{@"title":@"zxp",@"name":@"zhangxiaoping3"}, @{@"title":@"zxp",@"name":@"zhangxiaoping"}]; //根據(jù)name字段,來進行重復(fù)刪除。 NSArray *newArray = [array valueForKeyPath:@"@distinctUnionOfObjects.name"]; //如果要根據(jù)title字段來刪除重名的寫法為`@distinctUnionOfObjects.title` NSLog(@"%@", newArray); /* print:( zhangxiaoping3, zhangxiaoping2, zhangxiaoping)是一個字符串?dāng)?shù)組*/
進行實例方法的調(diào)用
NSArray *array = @[@"name", @"w", @"aa", @"ZXPing"]; NSLog(@"%@", [array valueForKeyPath:@"uppercaseString"]);
相當(dāng)于數(shù)組中的每個成員執(zhí)行了uppercaseString方法,然后把返回的對象組成一個新數(shù)組返回。既然可以用uppercaseString方法,那么NSString的其他方法也可以,比如[array valueForKeyPath:@"length"]。當(dāng)然,其他對象的實例方法也可以以此類推來進行調(diào)用~!
作者:水瓶座iOSer
鏈接:http://www.jianshu.com/p/a6a0abac1c4a
來源:簡書
著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。
轉(zhuǎn)載于:https://www.cnblogs.com/fromus/p/7452008.html
總結(jié)
- 上一篇: day18--django3之Ajax
- 下一篇: iOS 后台返回json解析出现的nul