天天看點

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設計模式

繼續閱讀