KVC底层原理 Key-value-coding

2019-03-20  本文已影响0人  流浪猫121

KVC Key-value-coding
里面主要是以下2个方法,下面分别对2个方法进行剖析。

-(id)valeueForKey:(NSString *)key

image.png

是否存在 get方法
如果存在 直接调用
首先会查找实例变量的get方法,如果查找到了,接直接调用赋值,否则,查找类似的实名变量,如果找到了就赋值,相似的概念,+(BOOL)accessInstanceVariablesDirectly 默认返回YES
如果对应的访问器不存在 判断实例变量是否存在valueForUndefinedKey,如果不存在NSUndefineKeyException

会查找同名的实例或相似的 根据同名变量是那个
_key
_isKey
key
isKey

-(void)setValue:(id)value forKey:(NSString *)key

image.png

和get方法相同,首先会查找实例变量的set方法,如果查找到了,接直接调用赋值,否则,查找类似的实名变量,如果找到了就赋值,相似的概念
_key
_isKey
key
isKey

上一篇 下一篇

猜你喜欢

热点阅读