zoukankan      html  css  js  c++  java
  • 高效开发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"]

    当然,其它对象的实例方法也能够以此类推来进行调用~。

  • 相关阅读:
    数据库相关(转)
    sql之left join、right join、inner join的区别
    PHP面试编程
    实验6 shell程序设计一(1)
    实验7 shell程序设计二(1)
    Linux软件安装管理
    Linux常用命令总结
    合唱团
    linux课后作业1
    linux网络服务实验
  • 原文地址:https://www.cnblogs.com/llguanli/p/8892164.html
Copyright © 2011-2022 走看看