iOS中valueForKeyPath的常用方法法示例
前言
可能很多人對-(nullableid)valueForKeyPath:(NSString*)keyPath;這個方法不是很理解,實(shí)際上,這可以擴(kuò)展到KVC中的高級用法上去。該方法非常強(qiáng)大。下面就來給大家詳細(xì)介紹iOS中valueForKeyPath的常用方法,話不多說了,來一起看看詳細(xì)的介紹吧
valueForKeyPath的常用方法
1、valueForKeyPath可以獲取數(shù)組中的最小值、最大值、平均值、求和。代碼如下:
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可以獲取數(shù)組中相同key的元素
如下所示:
NSArray *arr = @[@{@"city":@"beijing",@"person":@{@"name":@"zhangsan"}},@{@"city":@"chengdu"}];
[arr valueForKeyPath:@"city"] 可以獲取到city數(shù)組 @[@"beijing",@"chengdu"]
3、valueForKeyPath 可以使用. 來一層一層向下索引,當(dāng)多個字典層級時,取子層級中的屬性就非常簡單了
NSDictionary *dict1 = @{@"dic1":@{@"dic2":@{@"name":@"lisi",@"info":@{@"age":@"12"}}}};
id res = [dict1 valueForKeyPath:@"[dict1.dict2.name](http://dict1.dict2.name/)"];
4、刪除重復(fù)的數(shù)據(jù)
NSArray *array = @[@"qq", @"wechat", @"qq", @"msn", @"wechat"]; [array valueForKeyPath:@"@distinctUnionOfObjects.self"];
5、嵌套使用(先刪除對應(yīng)值的重復(fù)數(shù)據(jù)再取值)
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; 要方便太多!
總結(jié)
以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,如果有疑問大家可以留言交流,謝謝大家對腳本之家的支持。
相關(guān)文章
iOS Runntime 動態(tài)添加類方法并調(diào)用-class_addMethod
這篇文章主要介紹了iOS Runntime 動態(tài)添加類方法并調(diào)用-class_addMethod的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2016-08-08
iOS 數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組的操作方法
這篇文章主要介紹了iOS 數(shù)據(jù)結(jié)構(gòu)之?dāng)?shù)組的操作方法,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧2018-07-07
iOS應(yīng)用中使用Auto Layout實(shí)現(xiàn)自定義cell及拖動回彈
這篇文章主要介紹了iOS應(yīng)用中使用Auto Layout實(shí)現(xiàn)自定義cell及拖動回彈的方法,自定義UITableViewCell并使用Auto Layout對其進(jìn)行約束可以方便地針對多尺寸屏幕進(jìn)行調(diào)整,代碼為Swift語言,需要的朋友可以參考下2016-03-03
iOS中使用NSProgress類來創(chuàng)建UI進(jìn)度條的方法詳解
NSProgress是iOS7以后引入的用于制作進(jìn)度條的類,能夠監(jiān)聽多個任務(wù),這里就為大家?guī)韎OS中使用NSProgress類來創(chuàng)建UI進(jìn)度條的方法詳解,需要的朋友可以參考下2016-06-06

