KVC

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 这个协议


你可能感兴趣的:(KVC)