iOS中 valueForKeyPath常用用法

 更新时间:2018年08月03日 09:07:45   作者:逍遥晨旭  
这篇文章主要介绍了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 = @{@"dict1":@{@"dict2":@{@"name":@"lishi",@"info":@{@"age":@"12"}}}};
id res = [dict1 valueForKeyPath:@"dict1.dict2.name"];//(http://dict1.dict2.name/)
NSLog(@"res = %@",res);// 输出lishi

4、删除重复的数据

NSArray *array = @[@"qq", @"wechat", @"qq", @"msn", @"wechat"];
NSArray *deleltNewA = [array valueForKeyPath:@"@distinctUnionOfObjects.self"];
NSLog(@"deleltNewA = %@",deleltNewA);// 输出( qq, wechat,  msn)

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

NSArray *array = @[@{@"name" : @"xiaoming",
         @"code" : @1},
         @{@"name": @"judy",
         @"code" : @2},
         @{@"name": @"judy",
         @"code" : @3},
         @{@"name": @"xiaohua",
         @"code" : @4}];
NSArray *deleltNewA = [array valueForKeyPath:@"@distinctUnionOfObjects.name"];
NSLog(@"deleltNewA = %@",deleltNewA);// 输出(judy, xiaohua, xiaoming);

6、改变 UITextfield 的 placeholder 的颜色

[addressTextField setValue:[UIColor redColor] forKeyPath:@”_placeholderLabel.textColor”];
比起重写 - (void)drawPlaceholderInRect:(CGRect)rect; 要方便太多!

总结

以上所述是小编给大家介绍的iOS中 valueForKeyPath常用用法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:

相关文章

  • ios实现文件对比的方法

    ios实现文件对比的方法

    这篇文章主要介绍了ios实现文件对比的方法,主要是用到了filemanager,有需要的小伙伴可以参考下。
    2015-05-05
  • iOS使用UICollectionView实现横向滚动照片效果

    iOS使用UICollectionView实现横向滚动照片效果

    这篇文章主要为大家详细介绍了iOS使用UICollectionView实现横向滚动照片效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • iOS开发之使用Storyboard预览UI在不同屏幕上的运行效果

    iOS开发之使用Storyboard预览UI在不同屏幕上的运行效果

    使用Storyboard做开发效率非常高,为了防止在团队中发生冲突,采取的解决办法是负责UI开发的同事最好每人维护一个Storyboard, 公用的组件使用轻量级的xib或者纯代码来实现,下面小编就给大家介绍如何使用Storyboard预览UI在不同屏幕上的运行效果,需要的朋友可以参考下
    2015-08-08
  • iOS中的集合该如何弱引用对象示例详解

    iOS中的集合该如何弱引用对象示例详解

    这篇文章主要给大家介绍了关于在iOS中的集合该如何弱引用对象的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来依稀学习学习吧。
    2017-09-09
  • iOS实现模拟定位功能的示例代码

    iOS实现模拟定位功能的示例代码

    这篇文章主要介绍了iOS实现模拟定位功能的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • iOS UIPickerView的简单封装示例

    iOS UIPickerView的简单封装示例

    这篇文章主要给大家介绍了关于iOS UIPickerView的简单封装的相关资料,文中通过示例代码介绍的非常详细,对各位iOS开发者们具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • iOS开发中多线程的安全隐患总结

    iOS开发中多线程的安全隐患总结

    在本篇文章中小编给大家整理了关于iOS开发中多线程的安全隐患的知识点,需要的朋友们学习参考下。
    2019-07-07
  • iOS自定义相机实现拍照、录制视频

    iOS自定义相机实现拍照、录制视频

    这篇文章主要为大家详细介绍了iOS自定义相机实现拍照、录制视频,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • iOS App连续闪退时上报crash日志的方法详解

    iOS App连续闪退时上报crash日志的方法详解

    iOS App 有时可能遇到启动必 crash 的绝境:每次打开 App 都闪退,无法正常使用App。下面这篇文章主要给大家介绍了iOS App连续闪退时上报crash日志的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2018-04-04
  • iOS中监听UITextField值改变事件的方法实例

    iOS中监听UITextField值改变事件的方法实例

    UITextField 是一个用来处理文本输入和现实的控件,在我们的开发当中也是经常被用到。下面这篇文章主要给大家介绍了关于iOS中监听UITextField值改变事件的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2018-07-07

最新评论