KVC Collection Operators

简单集合操作符

    //@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)