KVC and KVO

KVC

KVC 是 Key-value coding 的缩写,是一种通过 key-value 的方式获取对象属性的机制。 这个 key 是一个 String 的唯一标示符,这个 key 的 name 约定是必须是 ASCII 码、小写字母开头、中间不能有空格。

让一个类实现 KVO 的方式是遵循 NSKeyValueCoding 这个协议,该协议中定义了 2 个方法:valueForKey: and setValue:forKey:. 这两个方法用来通过 key 访问和获取对象属性。

More about KVC

KVO

Apple Document about KVO

KVO 的实现方式:isa-swizzing

Lightweight Key-Value Observing