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