KVC

作者: 小希嘻 | 来源:发表于2018-07-16 11:13 被阅读17次

    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

          本文链接:https://www.haomeiwen.com/subject/ftgvpftx.html