iOS之深入解析KVC的底层原理和自定义KVC的实现

一、KVC 简介

① 定义
  • KVC 是 Key-Value Coding 的简称,中文译义为键值编码。
  • KVC 是指 iOS 的开发中,可以允许开发者通过 Key 名直接访问对象的属性,或者给对象的属性赋值,而不需要调用明确的存取方法。
  • KVC 是由 NSKeyValueCoding 非正式协议启用的一种机制,对象采用该协议来间接访问其属性,即可以通过一个字符串 key 来访问某个属性。这种间接访问机制补充了实例变量及其相关的访问器方法所提供的直接访问。
  • 通过 KVC 就可以在运行时动态地访问和修改对象的属性,而不是在编译时确定,这也是 iOS 开发中的黑魔法之一,很多高级的 iOS 开发技巧都是基于 KVC 实现的。
② 相关方法
  • 在 NSKeyValueCoding 中提供了 KVC 通用的访问方法,分别是 getter 方法 valueForKey: 和 setter 方法 setValue:forKey:,以及其衍生的 keyPath 方法,这两个方法对各个类均通用。并且由 KVC 提供默认的实现,我们也可以自己重写对应的方法来改变实现。
  • 在 NSKeyValueCoding 中,KVC 最为重要的方法如下:
	// 通过key来取值
	- (id)valueForKey

猜你喜欢

转载自blog.csdn.net/Forever_wj/article/details/117593944
KVC