日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

高效开发iOS系列 -- 那些不为人知的KVC

發布時間:2023/11/29 c/c++ 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 高效开发iOS系列 -- 那些不为人知的KVC 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我的簡書地址:http://www.jianshu.com/p/a6a0abac1c4a

valueForKeyPath


本篇來解說一下那些不為人知,也常常被忽略掉,而且非常有用的KVC干貨小技巧

獲取數組里的,最大、最小、平均、求和


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);

刪除反復數據


NSArray *array = @[@"name", @"w", @"aa", @"zxp", @"aa"];//返回的是一個新的數組NSArray *newArray = [array valueForKeyPath:@"@distinctUnionOfObjects.self"];NSLog(@"%@", newArray);

相同能夠嵌套使用,先剔除name相應值的反復數據再取值


NSArray *array = @[@{@"title":@"zxp",@"name":@"zhangxiaoping"},@{@"title":@"zxp2",@"name":@"zhangxiaoping2"},@{@"title":@"zxp",@"name":@"zhangxiaoping3"},@{@"title":@"zxp",@"name":@"zhangxiaoping"}]; //依據name字段,來進行反復刪除。 NSArray *newArray = [array valueForKeyPath:@"@distinctUnionOfObjects.name"];//假設要依據title字段來刪除重名的寫法為`@distinctUnionOfObjects.title` NSLog(@"%@", newArray); /*print: (zhangxiaoping3,zhangxiaoping2,zhangxiaoping ) 是一個字符串數組 */

進行實例方法的調用


NSArray *array = @[@"name", @"w", @"aa", @"ZXPing"]; NSLog(@"%@", [array valueForKeyPath:@"uppercaseString"]);


相當于數組中的每一個成員運行了uppercaseString方法。然后把返回的對象組成一個新數組返回。既然能夠用uppercaseString方法,那么NSString的其它方法也能夠,比方[array valueForKeyPath:@"length"]。

當然,其它對象的實例方法也能夠以此類推來進行調用~。

轉載于:https://www.cnblogs.com/llguanli/p/8892164.html

總結

以上是生活随笔為你收集整理的高效开发iOS系列 -- 那些不为人知的KVC的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。