国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS中valueForKeyPath的常用方法法示例

2019-10-21 18:40:50
字體:
來源:轉載
供稿:網友

前言

可能很多人對-(nullableid)valueForKeyPath:(NSString*)keyPath;這個方法不是很理解,實際上,這可以擴展到KVC中的高級用法上去。該方法非常強大。下面就來給大家詳細介紹iOS中valueForKeyPath的常用方法,話不多說了,來一起看看詳細的介紹吧

valueForKeyPath的常用方法

1、valueForKeyPath可以獲取數組中的最小值、最大值、平均值、求和。代碼如下:

NSArray *array = @[@10, @23, @43, @54, @7, @17, @5];+ (NSString *)caculateArray:(NSArray *)array{ CGFloat sum = [[array valueForKeyPath:@"@sum.floatValue"] floatValue]; CGFloat avg = [[array valueForKeyPath:@"@avg.floatValue"] floatValue]; CGFloat max =[[array valueForKeyPath:@"@max.floatValue"] floatValue]; CGFloat min =[[array valueForKeyPath:@"@min.floatValue"] floatValue]; NSLog(@"%fn%fn%fn%f",sum,avg,max,min); return [NSString stringWithFormat:@"%f",sum];}

2、valueForKeyPath可以獲取數組中相同key的元素

如下所示:

NSArray *arr = @[@{@"city":@"beijing",@"person":@{@"name":@"zhangsan"}},@{@"city":@"chengdu"}];[arr valueForKeyPath:@"city"] 可以獲取到city數組 @[@"beijing",@"chengdu"]

3、valueForKeyPath 可以使用. 來一層一層向下索引,當多個字典層級時,取子層級中的屬性就非常簡單了

NSDictionary *dict1 = @{@"dic1":@{@"dic2":@{@"name":@"lisi",@"info":@{@"age":@"12"}}}};id res = [dict1 valueForKeyPath:@"[dict1.dict2.name](http://dict1.dict2.name/)"];

4、刪除重復的數據

NSArray *array = @[@"qq", @"wechat", @"qq", @"msn", @"wechat"];[array valueForKeyPath:@"@distinctUnionOfObjects.self"];

5、嵌套使用(先刪除對應值的重復數據再取值)

NSArray *array = @[@{@"name" : @"xiaoming",     @"code" : @1},     @{@"name": @"judy",     @"code" : @2},     @{@"name": @"judy",     @"code" : @3},     @{@"name": @"xiaohua",     @"code" : @4}];[array valueForKeyPath:@"@distinctUnionOfObjects.name"];

6、改變 UITextfield 的 placeholder 的顏色

[addressTextField setValue:[UIColor redColor] forKeyPath:@”_placeholderLabel.textColor”];

比起重寫 - (void)drawPlaceholderInRect:(CGRect)rect; 要方便太多!

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到IOS開發頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 鲁甸县| 大丰市| 大港区| 昌图县| 宁都县| 张北县| 当雄县| 洛阳市| 中超| 济源市| 江油市| 昭苏县| 兴隆县| 保亭| 开阳县| 印江| 西宁市| 红原县| 察哈| 葵青区| 南雄市| 长治县| 和平县| 丰镇市| 蒙阴县| 三穗县| 双柏县| 高平市| 桃园市| 洛扎县| 五台县| 卓资县| 普兰店市| 九江市| 晋城| 金湖县| 商水县| 香格里拉县| 中超| 苗栗市| 岚皋县|