KVC

通过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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • KVC(Key-value coding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iO...
    我的梦工厂阅读 901评论 1 8
  • KVC(Key-valuecoding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iOS...
    榕樹頭阅读 723评论 0 2
  • KVC/KVO 概念 KVC : 即 Key-Value-Coding,用于键值编码。作为 cocoa 的一个标准...
    满脸胡茬的小码农阅读 1,978评论 2 8
  • 1. KVO 一.KVO原理的使用与证明 我们在开发的过程中经常使用KVO和KVC,但是我们并不了解其底层原理和功...
    周灬阅读 856评论 0 9
  • 在谈论KVO和KVC之前,先引出几个问题 问题一:iOS用什么方式实现KVO,你可以理解成KVO本质是什么? 1....
    coder_feng阅读 589评论 0 0