KVO的setValue:forKey原理
1、按照setKey,_setKey的顺序查找成员方法,如果找到方法,传递参数,调用方法
2、如果没有找到,查看accessInstanceVariablesDirectly的返回值(accessInstanceVariablesDirectly的返回值默认是YES),
返回值为YES,按照_Key,_isKey的顺序查找成员变量,如果找到,直接赋值,如果没有找到,调用setValue:forUndefinedKey:,抛出异常
返回NO,直接调用setValue:forUndefinedKey:,抛出异常
KVO的ValueforKey原理
1、按照getKey,key,isKey,_key的顺序查找成员方法,如果找到直接调用取值
2、如果没有找到,查看accessInstanceVariablesDirectly的返回值
返回值为YES,按照_Key,_isKey,Key,isKey的顺序查找成员变量,如果找到,直接取值,如果没有找到,调用setValue:forUndefinedKey:,抛出异常
返回NO,直接调用setValue:forUndefinedKey:,抛出异常














网友评论