iOS--KVC&KVO
2017-05-16 18:23 doudo 阅读(190) 评论(0) 编辑 收藏 举报一、KVC
通过关键字,访问属性及成员变量。
1.kvc当调用setValue:属性值 forKey:@”name“
的代码时,底层的执行机制(顺序)如下:
①.set方法:set<Key> (注意,通过属性自动合成的set方法也算)
②.(BOOL)accessInstanceVariablesDirectly
方法有没有返回YES,默认该方法会返回YES,继续向下寻找。
(如果你重写了该方法让其返回NO的话,那么在这一步KVC会直接执行⑤setValue:forUNdefinedKey:
方法,不过一般开发者不会这么做。所以,如果想让自己的类禁用kvc,可以用此方法返回NO,不过记得属性会自动合成set方法)
②._<key>成员变量
③._is<Key>成员变量
④.<key>和is<Key>成员变量
⑤.执行该对象的setValue:forUNdefinedKey:
方法,默认是抛出异常。
2.当调用valueForKey:@"name"时,执行机制(顺序)如下:
①.get<Key>,<key>,is<Key> ,这些get方法