KVC

2019-10-13  本文已影响0人  Amor瑾年v

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
上一篇 下一篇

猜你喜欢

热点阅读