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);
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"]
。当然,其他对象的实例方法也可以以此类推来进行调用~!