天天看点

iOS: 使用KVO监听控制器中数组的变化

一、介绍:

KVO是一种能动态监听到属性值的改变的方式,使用场景非常广泛,这里我只讲如何监听控制器ViewController中数组的变化。

二、了解:

首先我们应该知道KVO是不能直接监听控制器ViewController数组的变化的,需要将数组定义在模型中,然后控制器ViewController持有模型对象,通过该对象才能监听。

三、步骤:

<1>在控制器ViewController类中定义一个模型类Model,并在该类中声明一个可变的数组属性modelArray并进行懒加载,其实它最终就是作为控制器ViewController的数组使用;

iOS: 使用KVO监听控制器中数组的变化
iOS: 使用KVO监听控制器中数组的变化
iOS: 使用KVO监听控制器中数组的变化
iOS: 使用KVO监听控制器中数组的变化

<2>在控制器ViewController中持有模型类Model的全局对象;

iOS: 使用KVO监听控制器中数组的变化
iOS: 使用KVO监听控制器中数组的变化

<3>用第2步创建的对象注册监听,监听属性就是数组modelArray,即modelArray作为keyPath值,注册方法为;

<4>重写监听方法,监听值的变化;

iOS: 使用KVO监听控制器中数组的变化
iOS: 使用KVO监听控制器中数组的变化

<5>移除监听,最后释放内内存时需要把监听移除掉

 <6>点击界面,模拟数据添加到数组中,添加方法必须是:- (NSMutableArray *)mutableArrayValueForKeyPath:(NSString *)keyPath;

四、演示截图:(每点击一次,能够监听到数组个数增加1)

iOS: 使用KVO监听控制器中数组的变化

五、完整代码如下:

.h文件

iOS: 使用KVO监听控制器中数组的变化
iOS: 使用KVO监听控制器中数组的变化

.m文件

iOS: 使用KVO监听控制器中数组的变化
iOS: 使用KVO监听控制器中数组的变化

程序猿神奇的手,每时每刻,这双手都在改变着世界的交互方式!

本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/6096186.html,如需转载请自行联系原作者

上一篇: C#弱引用
下一篇: MVVM设计模式

继续阅读