valueForKeyPath常用用法


valueForKeyPath和valueForKey有一些類似,但也有一些不同的地方。這里就簡單說一下valueForKeyPath一些不同的地方。

舉例來說:

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

+ (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"];
//res = lisi
上面就有一些我用到的valueForKeyPath的用法
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM