iOS中valueForKeyPath的常用方法法示例

 更新时间:2018年07月01日 08:40:16   作者:逍遥晨旭  
这篇文章主要给大家介绍了关于iOS中valueForKeyPath的常用方法法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

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

valueForKeyPath的常用方法

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

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的元素

如下所示:

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

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

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

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

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

4、删除重复的数据

NSArray *array = @[@"qq", @"wechat", @"qq", @"msn", @"wechat"];
[array valueForKeyPath:@"@distinctUnionOfObjects.self"];

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

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 的颜色

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

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

总结

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

相关文章

  • iOS系统的底层通知框架库示例详解

    iOS系统的底层通知框架库示例详解

    这篇文章主要给大家介绍了关于iOS系统的底层通知框架库的相关资料,文中通过示例代码介绍的非常详细,对各位iOS开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • IOS xib布局小技巧-边框设置

    IOS xib布局小技巧-边框设置

    这篇文章主要介绍了IOS xib布局小技巧-边框设置的相关资料,需要的朋友可以参考下
    2016-12-12
  • iOS评分(评价)星星图打分功能

    iOS评分(评价)星星图打分功能

    这篇文章主要介绍了iOS评分(评价)星星图打分功能,评分视图分为展示和评分两种,具体详情大家可以通过本文详细学习
    2016-11-11
  • 配置iOS 16 屏幕旋转适配实例详解

    配置iOS 16 屏幕旋转适配实例详解

    这篇文章主要为大家介绍了配置iOS 16 屏幕旋转适配实例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • IOS手势操作(拖动、捏合、旋转、点按、长按、轻扫、自定义)

    IOS手势操作(拖动、捏合、旋转、点按、长按、轻扫、自定义)

    这篇文章主要介绍了IOS手势操作(拖动、捏合、旋转、点按、长按、轻扫、自定义),需要的朋友可以参考下
    2015-07-07
  • 浅谈iOS应用中的相关正则及验证

    浅谈iOS应用中的相关正则及验证

    下面小编就为大家带来一篇浅谈iOS应用中的相关正则及验证。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • iOS中你需要的弹窗效果总结大全

    iOS中你需要的弹窗效果总结大全

    弹窗是app中常见控件之一,一般由于项目需求,我们很少能直接使用系统提供的弹窗,这个时候就需要我们根据产品需求封装自定义弹窗了。下面这篇文章主要给大家介绍了关于iOS中你需要的弹窗效果的相关资料,需要的朋友可以参考下
    2018-09-09
  • iOS 自定义返回按钮保留系统滑动返回功能

    iOS 自定义返回按钮保留系统滑动返回功能

    这篇文章主要介绍了iOS 自定义返回按钮,保留系统滑动返回功能,实现方法非常简单,具有参考借鉴价值,需要的朋友参考下吧
    2017-01-01
  • iOS CoreAnimation 图层几何学

    iOS CoreAnimation 图层几何学

    本文主要介绍了iOS CoreAnimation图层几何学,图层几何所讲主要是有关图层的位置,尺寸等几何类属性。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • 简单谈谈Core Animation 动画效果

    简单谈谈Core Animation 动画效果

    下面小编就为大家带来一篇简单谈谈Core Animation 动画效果。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06

最新评论