KVC

作者: Amor瑾年v | 来源:发表于2019-10-13 13:35 被阅读0次

    KVC即Key-value coding的缩写,一个非正式的Protocol,使用字符串(键)访问一个对象实例变量的机制,而不是通过调用Setter,Getter方法等显示的存取方式去访问。

    屏幕快照 2019-10-13 下午1.23.35.png

    1.KVC的使用

    (1):动态的取值和设值
    (2):用KVC来访问和修改私有变量
    (3):Model和字典转换
    (4):修改一些控件的内部属性(例如自定义UITextField中的placeHolderText)

    2.KVC的底层实现(也是setValue:forKey:的原理)

    屏幕快照 2019-10-13 下午1.31.00.png

    当一个对象调用setValue方法时,方法内部会做以下操作:
    1). 检查是否存在相应的key的set方法,如果存在,就调用set方法。
    2). 如果set方法不存在,就会查找与key相同名称并且带下划线的成员变量,如果有,则直接给成员变量属性赋值。
    3). 如果没有找到_key,就会查找相同名称的属性key,如果有就直接赋值。
    4). 如果还没有找到,则调用valueForUndefinedKey:和setValue:forUndefinedKey:方法。
    这些方法的默认实现都是抛出异常,我们可以根据需要重写它们。

    3.KVC获取值的原理

    屏幕快照 2019-10-13 下午1.34.38.png

    相关文章

      网友评论

          本文标题:KVC

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