KVC

2019-11-28  本文已影响0人  纳兰沫

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

会触发

KVC的赋值和取值过程是怎么样的 原理是什么

KVC

KVC的全称是Key-Value Coding 俗称"键植编码"  可以通过一个key来访问某个属性
常见的API有
- (void)setValue:(id)value forKeyPath:(NSString *)keyPath;
- (void)setValue:(id)value forKey:(NSString *)key;
- (id)valueForKeyPath:(NSString *)keyPath;
- (id)valueForKey:(NSString *)key; 
setValue:forKey:的原理
setValue:forKey:的原理.png

accessInstanceVariablesDirectly方法的默认返回值是YES

valueForKey:的原理
valueForKey:的原理.png

当没有设置为属性 只是成员变量 直接使用KVC改变值 也会触发KVO 是因为本质上底层是使用了手动触发KVO的方法 willChangeValueForKey didChangeValueForKey

上一篇 下一篇

猜你喜欢

热点阅读