在开发过程中,经常会对某一个值进行特定的处理,比如一个按钮是否被选中等等。这时候就会用到KVO。所谓KVO简单来讲,就是给需要被观察的对象添加一个观察者,当被观察对象的某个属性发生改变时,立马通知观察者执行相关操作的一种机制。
我们来看一个例子:加入我们要监听一个人的年龄变化,通常做法如下:
通过以上5步操作,在我们点击屏幕时,就会在- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void*)context方法中得到如下结果:
当我们离开页面时,在dealloc方法中移除监听对象就可以了。
简单总结如下:
1、创建对象;
2、添加观察者,观察需要监听的对象属性值;
3、当属性值发生改变时,在- (void)observeValueForKeyPath:(NSString*)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void*)context方法中做处理;
4、离开页面时,移除监听者。
这就是KVO最简单的使用过程,但是我们肯定不仅仅满足于如何使用KVO,想要探究在KVO背后,究竟发生了什么,且看下篇文章。
网友评论