KVC Key-value-coding
里面主要是以下2个方法,下面分别对2个方法进行剖析。
-(id)valeueForKey:(NSString *)key
是否存在 get方法
如果存在 直接调用
首先会查找实例变量的get方法,如果查找到了,接直接调用赋值,否则,查找类似的实名变量,如果找到了就赋值,相似的概念,+(BOOL)accessInstanceVariablesDirectly 默认返回YES
如果对应的访问器不存在 判断实例变量是否存在valueForUndefinedKey,如果不存在NSUndefineKeyException
会查找同名的实例或相似的 根据同名变量是那个
_key
_isKey
key
isKey
-(void)setValue:(id)value forKey:(NSString *)key
和get方法相同,首先会查找实例变量的set方法,如果查找到了,接直接调用赋值,否则,查找类似的实名变量,如果找到了就赋值,相似的概念
_key
_isKey
key
isKey