KVO的用法
- 注册
- 实现回调方法
- 释放的时候取消注册
这里有几个问题
- 注册的时候参数过多
- 释放的时候必须取消注册
- 只有一个回调,当注册的观察者过多的时候,会使得代码变得杂乱
KVO的封装
下面我们将针对这几个问题进行封装
- 定义一个观察者类
- 添加NSObject关于观察者的类别
- 在这里我们查询的实现的方法
- 用block的话就直接保存
- 处理实现方法
- 把所有的观察者添加到一个字典里
- 当对象释放的时候会清空字典里的观察者对象,在观察者对象的dealloc方法里面取消注册观察者
- 为了方便书写,定义几个宏
这个封装的优点是在使用KVO的时候不需要记住太多东西..
代码可以在https://github.com/uxyheaven/XYQuickDevelop下载到