8086汇编(41)单步中断

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:的原理


    1.png

accessInstanceVariablesDirectly方法的默认返回值是YES

注意:
setValue:forKey:方法同时会调用willChangeValueForKey:和didChangeValueForKey:方法

  • valueForKey:的原理


    2.png

面试题 - KVC

1、通过KVC修改属性会触发KVO么?
会触发KVO(不管是否有set方法)

2、KVC的赋值和取值过程是怎样的?原理是什么?
见上面的图片

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

推荐阅读更多精彩内容

  • KVC(Key-value coding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iO...
    我的梦工厂阅读 904评论 1 8
  • KVC(Key-valuecoding)键值编码,单看这个名字可能不太好理解。其实翻译一下就很简单了,就是指iOS...
    榕樹頭阅读 727评论 0 2
  • KVO: KVO的全称是Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变...
    曹来东阅读 649评论 0 0
  • KVC/KVO 概念 KVC : 即 Key-Value-Coding,用于键值编码。作为 cocoa 的一个标准...
    满脸胡茬的小码农阅读 1,985评论 2 8
  • KVC简单介绍 KVC(Key-value coding)键值编码,就是指iOS的开发中,可以允许开发者通过Key...
    公子无礼阅读 1,432评论 0 6