關于使用KVO監(jiān)聽數(shù)組的問題

首先,數(shù)組不能直接使用KVO使用監(jiān)聽。當我們想要使用KVO監(jiān)聽數(shù)組的狀態(tài)時改變?nèi)缓蟊M心操作時,我們需要進行一下幾部。

1.KVO不能監(jiān)聽UIViewController中的數(shù)組。我們需要先創(chuàng)建一個模型,將數(shù)組添加值模型中。

@interface SelectedsArr : NSObject

@property (nonatomic, strong) NSMutableArray *selecteds;///<選中的選項集合

@end

2.建立觀察者以及觀察者對象

[self.selectedsArr addObserver:self forKeyPath:@"selecteds" options:NSKeyValueObservingOptionNew context:nil];

3.處理Key的變化

這里,很重要,當向模型中的可變數(shù)組添加新成員時,不能直接用[self.selectedsArr.selecteds addObject:]方法。而使用該用下面的方法

[[self.selectedsArr mutableArrayValueForKey:@"selecteds"] addObject:]];

4.在下面的方法添加監(jiān)聽到變化后要執(zhí)行的語句

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary*)change context:(void *)context{

}

5.移除監(jiān)聽

[self removeObserver:self forKeyPath:@"selecteds"];

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容