iOS 之 valueForKeyPath 使用场景

1、将数组中的单词做大小写转换:

  NSArray *arr = @[@"Hello",@"Word",@"Objective",@"c"];
  NSArray *arrUpper = [arr valueForKeyPath:@"uppercaseString"];
  NSLog(@"%@",arrUpper);
        
 NSArray *arrLower = [arr valueForKeyPath:@"lowercaseString"];
 NSLog(@"%@",arrLower);

运行结果:

2019-04-20 15:49:06.968723+0800 Demo[4177:143487] (
HELLO,
WORD,
OBJECTIVE,
C
)
2019-04-20 15:49:06.969021+0800 Demo[4177:143487] (
hello,
word,
objective,
c
)

2、获取数组中所有单词的长度:

NSArray *arrLength = [arr valueForKeyPath:@"length"];
NSLog(@"%@",arrLength);

运行结果:

2019-04-20 15:49:06.969107+0800 Demo[4177:143487] (
5,
4,
9,
1
)

3、计算数组中所有对象某个属性的平均值:

NSArray *arrRate = @[@{@"orderId":@"0001",@"overtimeRate":@"0.6"},
            @{@"orderId":@"0002",@"overtimeRate":@"0.2"},
            @{@"orderId":@"0003",@"overtimeRate":@"0.0"},
            @{@"orderId":@"0004",@"overtimeRate":@"0.5"}];
        
NSNumber *avg = [arrRate valueForKeyPath:@"@avg.overtimeRate.floatValue"];
NSLog(@"avg = %.2f %%",[avg floatValue] *100);

运行结果:

2019-04-20 15:49:09.644375+0800 Demo[4177:143487] avg = 32.50 %

备注:

和计算key:@"@sum.floatValue"
取最大值key:@"@max.floatValue"
取最小值key:@"@min.floatValue"

4、设置UITextField 的placeholder 的文本颜色:

[passwordTextField setValue:[UIColor redColor] forKeyPath:@"_placeholderLabel.textColor"];
placeholderLabel.png

5、获取数组对象某个key的所有内容

NSArray *arrRate = @[@{@"orderId":@"0001",@"overtimeRate":@"0.6"},
            @{@"orderId":@"0002",@"overtimeRate":@"0.2"},
            @{@"orderId":@"0003",@"overtimeRate":@"0.0"},
            @{@"orderId":@"0004",@"overtimeRate":@"0.5"}];
 NSArray *arrRates = [arrRate valueForKeyPath:@"overtimeRate"];
 NSLog(@"%@",arrRates);

运行结果:

2019-04-20 18:08:26.595803+0800 Demo[8980:223529] (
"0.6",
"0.2",
"0.0",
"0.5"
)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文用来介绍 iOS 多线程中 GCD 的相关知识以及使用方法。这大概是史上最详细、清晰的关于 GCD 的详细讲...
    花花世界的孤独行者阅读 523评论 0 1
  • 近期看小说多一点,用一句话把我这二个月看的小说介绍一下: 《风暴岛》:二战期间,希特勒最信任的间谍,取得英军反攻西...
    走在雨的缝中阅读 678评论 1 4
  • 这一刻 如同进入漆黑的夜 雨如断线的珍珠 随风滑落 我的视线里 看不到你的喜悦 闪烁的车灯也迷惑 到底是雨水还是珍...
    付朝兰阅读 637评论 6 15
  • 很多迟疑配上少许犹豫,若再添几分徘徊,往往只会造就最遗憾苦痛的结局 站着不动,思绪停在某个时间落差点,脑海白茫茫一...
    他的猫哈阅读 475评论 0 0
  • 1、大盘全年涨幅明显,年底出现单日下跌2%是个投资机会,要注意调仓换股,布局来年。 2、2018年业绩好的中小盘股...
    喜欢高斯的洪堡阅读 137评论 2 0