KVC:全称为keyValueCoding,简称键值编码。是对NSObjcet的扩展,分类名为 : NSKeyValueCoding 我们经常用KVC或者setter方法来触发KVO,实现键值变化监听,实现一些功能。
赋值实现原理
1、查找是否实现setter方法,如果有,优先调用setter方法完成赋值(注意:set后面的键的第一字字母必须是大写)
2、当没找到setter方法,调用accessInstanceVariablesDirectly询问。
3、 如果返回YES,顺序匹配变量名与 _<key>匹配到则设定其值
4、 如果返回NO,结束查找。并调用 setValue:forUndefinedKey:报异常
5、如果既没有setter也没有实例变量时,调用 setValue:forUndefinedKey:
网友评论