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

首頁 > 系統 > iOS > 正文

iOS中valueForKeyPath的常用方法法示例

2020-07-26 02:26:07
字體:
來源:轉載
供稿:網友

前言

可能很多人對-(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; 要方便太多!

總結

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 涞源县| 柳林县| 商丘市| 修水县| 申扎县| 万宁市| 逊克县| 沙河市| 海门市| 甘孜县| 饶阳县| 陇西县| 游戏| 沂水县| 盱眙县| 乌兰察布市| 新绛县| 太和县| 鲁山县| 广德县| 梓潼县| 晋中市| 乐安县| 营山县| 洪雅县| 芒康县| 忻城县| 措勤县| 体育| 新河县| 平谷区| 乌苏市| 固原市| 普兰县| 平阳县| 海晏县| 阳山县| 恭城| 万载县| 丹巴县| 陆丰市|