KVC的使用如下:

(1)利用给对象的属性赋值,调用如下两个方法

- (void)setValue:(nullable id)value forKey:(NSString *)key;

- (void)setValue:(nullable id)value forKeyPath:(NSString *)keyPath;

其中,setValue:forKeyPath:  这个方法中,可以根据属性的路径赋值。

意思就是说,RiJiModel中有一个“MYCRiJiDiaryModel”类型的对象 diary,而diary类中有个title的属性,

那么,可以给rijiModel的diary对象的title这样赋值:

[rijiModel setValue:@"this is a title name"   forKeyPath:@"diary.title"];

这个forKeyPath 会先找到diary这个对象,再找到diary这个对象的title进行赋值;

(2)修改私有的成员变量

oc的系统中有很多私有的成员变量,用点赋值法是不能修改这个私有成员变量的值的。

但是用setValue:forKeyPath: 是可以修改的。

(3)取值

常规的就不说话了,说个比较有意思的:

数组的使用中,有几个比较有意思的:

第一个:取数组的个数;

第二个:取数组的对象中,年龄最大的值;

第三个:取数组的对象中,年龄最小的值;

第四个:取数组的对象中,年龄的平均值。

最新文章

  1. Apache Shiro 简单概念
  2. Java实验2-数据库编程
  3. Yii源码阅读笔记(四)
  4. Goal driven performance optimization
  5. jxl 导入excel以及日期格式处理
  6. mysql 优化点小结
  7. 2017<java技术>预备作业计科冀浩然
  8. maven 创建后报错
  9. Windows 10 安装 Docker for Windows
  10. pig中查询top k,返回每个hour和ad_network_id下最大两个记录(SUBSTRING,order,COUNT_STAR,limit)
  11. 写在最前面 - 《看懂每一行代码 - kubernetes》
  12. YARN详解
  13. 正则表达式中的re.S
  14. postgresql数据库查询慢SQL
  15. Spark Submitting Applications浅析
  16. Elasticsearch **代码片段
  17. mysql 命令一套
  18. VS之解决方案文件夹
  19. 获取设备IP地址
  20. Github常用命令【转】

热门文章

  1. Linux C 网络编程——多线程的聊天室实现(服务器端)
  2. GitLab-CI 来自动创建 Docker 镜像
  3. 学习LayUI时自研的表单参数校验框架
  4. 消费端如何保证消息队列MQ的有序消费
  5. SpringBoot Kafka 整合使用
  6. codeforces 339 D.Xenia and Bit Operations(线段树)
  7. Spark 系列(三)—— 弹性式数据集RDDs
  8. 并发编程(3)——ThreadPoolExecutor
  9. python3学习-logging模块
  10. 上手mongodb