高效开发iOS系列 -- 那些不为人知的KVC
生活随笔
收集整理的這篇文章主要介紹了
高效开发iOS系列 -- 那些不为人知的KVC
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
我的簡書地址:http://www.jianshu.com/p/a6a0abac1c4a
valueForKeyPath
本篇來解說一下那些不為人知,也常常被忽略掉,而且非常有用的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);
刪除反復數(shù)據(jù)
NSArray *array = @[@"name", @"w", @"aa", @"zxp", @"aa"];//返回的是一個新的數(shù)組NSArray *newArray = [array valueForKeyPath:@"@distinctUnionOfObjects.self"];NSLog(@"%@", newArray);
相同能夠嵌套使用,先剔除name相應值的反復數(shù)據(jù)再取值
NSArray *array = @[@{@"title":@"zxp",@"name":@"zhangxiaoping"},@{@"title":@"zxp2",@"name":@"zhangxiaoping2"},@{@"title":@"zxp",@"name":@"zhangxiaoping3"},@{@"title":@"zxp",@"name":@"zhangxiaoping"}]; //依據(jù)name字段,來進行反復刪除。 NSArray *newArray = [array valueForKeyPath:@"@distinctUnionOfObjects.name"];//假設(shè)要依據(jù)title字段來刪除重名的寫法為`@distinctUnionOfObjects.title` NSLog(@"%@", newArray); /*print: (zhangxiaoping3,zhangxiaoping2,zhangxiaoping ) 是一個字符串數(shù)組 */
進行實例方法的調(diào)用
NSArray *array = @[@"name", @"w", @"aa", @"ZXPing"]; NSLog(@"%@", [array valueForKeyPath:@"uppercaseString"]);
相當于數(shù)組中的每一個成員運行了uppercaseString方法。然后把返回的對象組成一個新數(shù)組返回。既然能夠用uppercaseString方法,那么NSString的其它方法也能夠,比方[array valueForKeyPath:@"length"]。
當然,其它對象的實例方法也能夠以此類推來進行調(diào)用~。
轉(zhuǎn)載于:https://www.cnblogs.com/llguanli/p/8892164.html
總結(jié)
以上是生活随笔為你收集整理的高效开发iOS系列 -- 那些不为人知的KVC的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 梦到买芒果预示着什么
- 下一篇: *hdu5632Rikka with A