iOS的KVC原理探究

设置键值

- (void)setValue:(id)value forKey:(NSString *)key;
  1. 搜索setter方法,如果找到,直接赋值
  2. 通过accessInstanceVariablesDirectly方法
    i. 返回YES,则按_<key>,_<isKey>,<key>,<isKey>的顺序搜索成员名
    ii. 返回NO,则执行setValue:forUndefinedKey

根据键获取值

- (id)valueForKey:(NSString *)key;
  1. 根据getter方法,如果有,直接拿到值
  2. 通过accessInstanceVariablesDirectly方法
    i. 返回YES,则按_<key>,_<isKey>,<key>,<isKey>的顺序搜索成员名
    ii. 返回NO,则执行valueForUndefinedKey
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容