一、是什么
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的原理
三、valueForKey:的原理
四、问题
1、通过KVC修改属性会触发KVO吗?
会
2、KVC的赋值和取值过程是怎样的?原理是什么?
看三和四