KVC的使用
2024-08-27 11:10:37
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)取值
常规的就不说话了,说个比较有意思的:
数组的使用中,有几个比较有意思的:
第一个:取数组的个数;
第二个:取数组的对象中,年龄最大的值;
第三个:取数组的对象中,年龄最小的值;
第四个:取数组的对象中,年龄的平均值。
最新文章
- Apache Shiro 简单概念
- Java实验2-数据库编程
- Yii源码阅读笔记(四)
- Goal driven performance optimization
- jxl 导入excel以及日期格式处理
- mysql 优化点小结
- 2017<;java技术>;预备作业计科冀浩然
- maven 创建后报错
- Windows 10 安装 Docker for Windows
- pig中查询top k,返回每个hour和ad_network_id下最大两个记录(SUBSTRING,order,COUNT_STAR,limit)
- 写在最前面 - 《看懂每一行代码 - kubernetes》
- YARN详解
- 正则表达式中的re.S
- postgresql数据库查询慢SQL
- Spark Submitting Applications浅析
- Elasticsearch **代码片段
- mysql 命令一套
- VS之解决方案文件夹
- 获取设备IP地址
- Github常用命令【转】