iOS - KVC(Key-Value Coding)初识及实现机制
概念
键值编码是一种由NSKeyValueCoding
非正式协议启用的机制,对象采用该机制来提供对其属性的间接访问。当对象符合键值编码时,其属性可通过字符串参数通过简洁、统一的消息传递接口进行寻址。这种间接访问机制补充了实例变量及其相关访问器方法提供的直接访问。
KVC
在Objective-C
中的定义:KVC的定义都是对NSObject
的,扩展来实现的(Objective-C中有个显式的NSKeyValueCoding
类别名-分类)。
使用符合键值编码的对象
对象在从NSObject
(直接或间接)继承时通常采用键值编码,它们都采用NSKeyValueCoding协议并为基本方法提供默认实现。这样的对象使其他对象能够通过紧凑的消息传递接口执行以下操作:
-
访问对象属性。该协议指定了方法,例如通用
gettervalueForKey:
和通用setter setValue:forKey:
,用于通过名称或键访问对象属性,参数化为字符串。这些和相关方法的默认实现使用键来定位底层数据并与之交互,如访问对象属性中所述。 -
操作集合属性。访问方法的默认实现与NSArray任何其他