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)取值

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

 

 

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

 

 

 

 

第一个:取数组的个数;

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

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

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

版权声明:本文为lyz0925原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/lyz0925/p/11440463.html