KVC
1、 KVC - Key Value Coding键值(路径)编码
2、KVC是一种间接修改/读取对象属性的一种方式
3、KVC在使用时,需要注意,键值名称在对象属性中必须存在,否则会崩溃!
4、 KVO - Key Value Observer键值观察(观察者模式)
5、通知中心同样也是观察者模式
KVC 概述
定义:在对象创建完成之后,动态(牵扯到运行时)的给对象属性赋值。
KVC,即是指NAKeyValueCodeing,一个非正式的Protocol,提供一种机制来间接访问对象的属性。而不是通过setter、getter方法访问。
因为类key反复嵌套,所以有个keyPath的概念,keyPath就是用.号来把一个一个key连接起来,这样就可以根据这个路径访问下去。
KVC,还有一个很重要的特点,自动装箱拆箱功能。这在ObjC中是仅有的,其他情况下均需要使用比如NSnumber来手动拆箱的。
装箱:把值类型转换成引用类型 若是int 转换成NSNumber或者NSString
拆箱:将引用类型转换成值类型 与上面相反
KVC,还可以对NSArray和NSSet 进行赋值
通过字典去进行赋值(不要忘了重写那个方法)
具体主要分为三大步:
-
第一步:寻找该属性有没有setsetter方法?有,就直接赋值
-
第二步:寻找有没有该属性带下划线的成员属性?有,就直接赋值
-
第三步:寻找有没有该属性的成员属性?有,就直接赋值
若对象没有值
在运行时给私有属性或者可读属性进行赋值
注意:归档和解档的方法不是KVC,而是NSCoding 这个协议
网友评论