美文网首页
KVC Collection Operators

KVC Collection Operators

作者: 再好一点点 | 来源:发表于2018-04-10 17:42 被阅读0次

    简单集合操作符

        //@count: 返回一个值为集合中对象总数的NSNumber对象。

        //@sum: 首先把集合中的每个对象都转换为double类型,然后计算其总和,最后返回一个值为这个总和的NSNumber对象。

        //@avg: 把集合中的每个对象都转换为double类型,返回一个值为平均值的NSNumber对象。

        //@max: 使用compare:方法来确定最大值。所以为了让其正常工作,集合中所有的对象都必须支持和另一个对象的比较。

        //@min: 和@max一样,但是返回的是集合中的最小值。

        Persion *p = [Persion new];

        p.age=@"4";

        Persion*p1 = [Persionnew];

        p1.age=@"5";

        NSArray*array1 =@[p, p1];

        NSLog(@"%@", [array1 valueForKeyPath:@"@avg.age"]);//4.5

        NSLog(@"%@", [array1 valueForKeyPath:@"@max.age"]);//5

        NSLog(@"%@", [array1 valueForKeyPath:@"@min.age"]);//4

        NSLog(@"%@", [array1 valueForKeyPath:@"@count"]);//2

        获取info数据

        NSDictionary *dict1 = @{@"dic1":@{@"dic2":@{@"name":@"lisi",@"info":@{@"age":@"12"}}}};

        id res = [dict1 valueForKeyPath:@"dic1.dic2.info"];

        NSLog(@"%@", res);//{age = 12;}

        NSArray*array3 =@[@0,@2,@3,@4,@7];

        NSNumber *sum = [array3 valueForKeyPath:@"@sum.self"];//16

        NSNumber *avg = [array3 valueForKeyPath:@"@avg.self"];//3.2

        NSNumber *max = [array3 valueForKeyPath:@"@max.self"];//7

        NSNumber *min = [array3 valueForKeyPath:@"@min.self"];//0

        NSLog(@"%@ %@ %@ %@",sum,avg,max,min);

        获取相同key的数据组成的数组

        NSArray*array4 =@[@{@"name":@"xiaoming",

                              @"code":@1},

                            @{@"name":@"judy",

                              @"code":@2},

                            @{@"name":@"judy",

                              @"code":@3},

                            @{@"name":@"xiaohua",

                              @"code":@4}];

        NSLog(@"%@", [array4 valueForKeyPath:@"name"]);//(xiaoming,judy,judy,xiaohua)

        对象操作符

        NSLog(@"%@", [array4 valueForKeyPath:@"@unionOfObjects.name"]);//(xiaoming,judy,judy,xiaohua)

        NSLog(@"%@", [array4 valueForKeyPath:@"@distinctUnionOfObjects.name"]);//(xiaoming,judy,xiaohua)

        转为大写字母

        NSArray *array5 = @[@"xiaoming", @"xiaohua", @"zhangshan", @"lisi"];

        NSLog(@"%@", [array5 valueForKeyPath:@"uppercaseString"]);

        修改占位符的颜色

        [textField setValue:[UIColor redColor] forKeyPath:@"placeholderLabel.textColor"];

    相关文章

      网友评论

          本文标题:KVC Collection Operators

          本文链接:https://www.haomeiwen.com/subject/xmmnhftx.html