KVO和KVC

KVO和KVC

1 . KVO 键值监听
Key Value Observing简称KVO,是一种观察者模式,利用它可以很容易实现视图和数据模型的分离,当数据模型的属性值改变了之后,作为监听器的视图组件就会被激发,激发时就会回调监控器自身。在ObjC中要实现KVO就必须实现NSKeyValueObsServing协议,不过NSObject已经实现了该协议,因此所所有的ObjC对象都可以使用KVO。
ObjC中使用KVO的常用方法名:
1) 注册指定key路径的监听器: addObserver: forKeyPath: options: context:
2)删除指定key路径的监听器: removeObserver: forKeyPath; removeObserver: forKeyPath: context:
3) 回调监听: observerValueForKeyPath: ofObject:
change: context:

使用:使用视图控件注册观察者进行监听,重写监听方法实时改变视图,最后在dealloc中删除监听器。

2 . KVC 键值编码
由于ObjC的语言特点,不必任何操作就可以进行属性的动态读写,这种方式就是Key Value Coding (简称KVC)。
KVC需要遵循NSKeyValueCoding协议,而NSObject就遵循了这个协议,所以所有的对象都支持KVC操作;
常用的操作方法如下:
动态设定:setValue:forKey:(用于简单路径)
setValue:forKeyPath:(用于复合路径,如student.name)
动态读取:valueForKey: 、valueForKeyPath:(用于复合路径)

你可能感兴趣的:(iOS,OC)