对valueForKeyPath:(NSString *)keyPath方法的理解

本文通过具体实例展示了如何使用 KVC 的 valueForKeyPath 方法来处理 NSArray 和 NSDictionary 数组,包括求和、求平均值、获取最大值和最小值等操作,并演示了如何筛选数组中的唯一值及对字符串进行转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


 大家对-(id)valueForKeyPath:(NSString *)keyPath   方法 不够了解     举具体的实例 

NSArray *array =@[@"1",@"2",@"3",@"3"];

//数组中数字的和

   NSNumber *sum = [array valueForKeyPath:@"@sum.floatValue"];

   NSLog(@"sum:%@",sum);

// 数组中数组的平均数

   NSNumber *avg = [array valueForKeyPath:@"@avg.floatValue"];

   NSLog(@"avg:%@",avg);

    //数组中数字的最大数

   NSNumber *max = [array valueForKeyPath:@"@max.floatValue"];

   NSLog(@"max:%@",max);

    //数组中数字的最小数

   NSNumber *min = [array valueForKeyPath:@"@min.floatValue"];

   

   NSLog(@"min:%@",min);

   

 

   //得到数组中 不同的元素  数字  

   NSArray *newArray = [arrayvalueForKeyPath:@"@distinctUnionOfObjects.self"];

   

    NSLog(@"新的数组:%@",newArray);

//输出数组中的字母都是大写

NSArray*array = @[@"name", @"w", @"aa",@"jimsa"];
NSLog(@"%@", [array valueForKeyPath:@"uppercaseString"]);

对NSDictionary数组快速找出相应key对的值

NSArray*array = @[@{@"name": @"cookeee",@"code":@1},
 @{@"name":@"jim",@"code": @2},
 @{@"name":@"jim",@"code": @1},
 @{@"name":@"jbos",@"code": @1}];
NSLog(@"%@", [array valueForKeyPath:@"name"]);

//先剔除 重复的值 再取值

NSArray*array = @[@{@"name": @"cookeee",@"code":@1},
 @{@"name":@"jim",@"code": @2},
 @{@"name":@"jim",@"code": @1},
 @{@"name":@"jbos",@"code": @1}];

NSLog(@"%@",[array valueForKeyPath:@"@distinctUnionOfObjects.code"]);

只要你能想到的成员实例方法都可以这么用。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值