说两个与KVC相关的技巧。

1.KVC与字典

有时候我们需要取出嵌套字典中的某个键的值。例如某个嵌套字典:

NSDictionary *dict = @{@"subDict":@{@"subKey":@"aStr"}};

需要取出subKey这个键的值。以前总是用valueForKey嵌套的语法来做,其实根本不用那么麻烦,直接利用valueForKeyPath方法就可以实现。代码如下:

NSString *str = [dict valueForKeyPath:@"subDict.subKey"];

2.KVC实现高阶消息传递

有时候需要对数组中每个对象调用某一个方法后生成新的数组,我们可以利用KVC的高阶消息传递功能来实现。例如有下面这样一个数组:

NSArray *originArr = @[@"octopress",@"nijino",@"saki"];

我想将这个数组中的每一个元素首字母大写,然后生成新的数组,如果按照常规做法需要利用快速枚举对数组每一个元素进行操作,并且还要分配一个空数组来存储处理过的元素。

而利用KVC的高阶消息传递,只需一句话就可以达到目的:

NSArray *resultArr = [originArr valueForKey:@"capitalizedString"];

这样一步就实现了需求。

小结:

KVC是Objective-C特有的语法现象,可以加以利用实现代码的简洁性和可维护性。

最新文章

  1. ExtJS4 源码解析(一)带项目分析
  2. JS图片自动和可控的轮播切换特效
  3. UESTC 900 方老师炸弹 --Tarjan求割点及删点后连通分量数
  4. mysql 修改字符集
  5. 跨平台的神器RAD XE5 来啦!!!! XE5破解
  6. osx升级到10.10后,用pod install报错最终解决办法
  7. [POJ 2356] Find a multiple
  8. mysql 更改自动增长列的初始值
  9. cefsharp实现javascript回调C#方法
  10. [译]Selenium Python文档:六、页面对象
  11. 关于二进制枚举-计蒜客-得到整数X
  12. luogu 1314 欧拉回路
  13. burpsuite只拦截特定网站数据包教程
  14. 占cpu 100%的脚本
  15. 基于CSS3飘带状3D菜单 菜单带小图标
  16. 进入docker的4种方式
  17. phpmywind调用方法大全
  18. linux安装以及相关配置
  19. Tomcat内存溢出解决java.lang.OutOfMemoryError: PermGen space
  20. winform最小化及关闭提示

热门文章

  1. Ubuntu添加环境变量
  2. Cacti安装脚本Server端+客户端
  3. loj2012 「SCOI2016」背单词
  4. Linux Shell系列教程之(七)Shell输出
  5. CS231n笔记 Lecture 5 Convolutional Neural Networks
  6. 事务的传播行为和隔离级别[transaction behavior and isolated level]
  7. jQuery控件之分页控件-- kkpager v1.3使用简介
  8. 【Hihocoder1636】Pangu and Stones(区间DP)
  9. 【Vijos1534】高性能计算机(DP)
  10. HDU 6231 (二分+双指针)