iOS学习 - KVC

重庆鹅岭

一、是什么

KVC(Key-value coding)键值编码,通过一个Key来访问一个对象的属性

常用方法

- (void)setValue:(nullable id)value forKey:(NSString *)key;          //通过Key来设值
- (nullable id)valueForKey:(NSString *)key;                          //直接通过Key来取值

- (void)setValue:(nullable id)value forKeyPath:(NSString *)keyPath;  //通过KeyPath来设值
- (nullable id)valueForKeyPath:(NSString *)keyPath;                  //通过KeyPath来取值

ForKeyPath可以访问属性的属性,valueForKeyPath:@"person.cat"
ForKey不可以

二、setValue: forKey的原理

image.png

三、valueForKey:的原理

image.png

四、问题

1、通过KVC修改属性会触发KVO吗?

2、KVC的赋值和取值过程是怎样的?原理是什么?
看三和四

你可能感兴趣的:(iOS学习 - KVC)