iOS中valueForKeyPath的常用方法法示例

2025-05-29 0 37

前言

可能很多人对-(nullableid)valueForKeyPath:(NSString*)keyPath;这个方法不是很理解,实际上,这可以扩展到KVC中的高级用法上去。该方法非常强大。下面就来给大家详细介绍iOSvalueForKeyPath的常用方法,话不多说了,来一起看看详细的介绍吧

valueForKeyPath的常用方法

1、valueForKeyPath可以获取数组中的最小值、最大值、平均值、求和。代码如下:

?

1

2

3

4

5

6

7

8

9

10

11
NSArray *array = @[@10, @23, @43, @54, @7, @17, @5];

+ (NSString *)caculateArray:(NSArray *)array

{

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

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

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

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

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

return [NSString stringWithFormat:@"%f",sum];

}

2、valueForKeyPath可以获取数组中相同key的元素

如下所示:

?

1

2

3
NSArray *arr = @[@{@"city":@"beijing",@"person":@{@"name":@"zhangsan"}},@{@"city":@"chengdu"}];

[arr valueForKeyPath:@"city"] 可以获取到city数组 @[@"beijing",@"chengdu"]

3、valueForKeyPath 可以使用. 来一层一层向下索引,当多个字典层级时,取子层级中的属性就非常简单了

?

1

2

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

id res = [dict1 valueForKeyPath:@"[dict1.dict2.name](http://dict1.dict2.name/)"];

4、删除重复的数据

?

1

2
NSArray *array = @[@"qq", @"wechat", @"qq", @"msn", @"wechat"];

[array valueForKeyPath:@"@distinctUnionOfObjects.self"];

5、嵌套使用(先删除对应值的重复数据再取值)

?

1

2

3

4

5

6

7

8

9
NSArray *array = @[@{@"name" : @"xiaoming",

@"code" : @1},

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

@"code" : @2},

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

@"code" : @3},

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

@"code" : @4}];

[array valueForKeyPath:@"@distinctUnionOfObjects.name"];

6、改变 UITextfield 的 placeholder 的颜色

?

1
[addressTextField setValue:[UIColor redColor] forKeyPath:@”_placeholderLabel.textColor”];

比起重写 - (void)drawPlaceholderInRect:(CGRect)rect; 要方便太多!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对快网idc的支持。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 iOS中valueForKeyPath的常用方法法示例 https://www.kuaiidc.com/89036.html

相关文章

发表评论
暂无评论