KVC的使用

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

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

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

第一个:取数组的个数;

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

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

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

猜你喜欢

转载自www.cnblogs.com/lyz0925/p/11440463.html
KVC
今日推荐