對於ios開發者而言,ios常用設計模式大家最喜歡的就是通知設計模式,但是通知模式有個很煩人的通病,那就是不好管理。所以在開發中一般能不用通知盡量不用通知。所以在通知和kvo之間我還是選擇用後者。
在實現kvo的時候,有個很重要的一點就是被觀察者的乙個被觀察的屬性改變時必須使用set方法。所有一般在呼叫改變該屬性的時候千萬要記住。
這是我在被觀察物件中定義的要被觀察的屬性。
@property(nonatomic,assign)nsinteger currentpage;
//ps 在需要變動該值得時候用set方法
//錯誤事例 _currentpage = 1;
//正確事例 slef.currentpage = 1;
//觀察屬性的時候不需要帶下劃線,因為系統會自動幫忙尋找待下劃線的currentpage
// 新增觀察者
[被觀察物件 addobserver:觀察者 forkeypath:@"currentpage" options:nskeyvalueobservingoptionnew context:nil];
// 觀察者方法
-(void)observevalueforkeypath:(nsstring *)keypath ofobject:(id)object change:(nsdictionary*)change context:(void *)context
ios裡的KVO模式
ios 全稱 key value observing 在ios裡,可以新增觀察者模式,來實現某個property更改後,通知指定的類。然後到observevalueforkeypath ofobject change context 提供處理 1 object addobserver observe...
objective c 七 關於KVO模式
在objective c中,關於資料的使用,有一種框架內建的技術來使用 通知的技術,叫做kvo技術。這個技術主要針對於某個物件的值改變後所進行的後續處理。首先要實現該技術首先要開始監聽某個物件的字段。監聽一般在物件的初始化方法中。selfaddobserver selfforkeypath sub ...
自定義KVO(探索KVO底層本質)
標頭檔案 import inte ce nsobject kvo void lyj addobserver nsobject observer forkeypath nsstring keypath options nskeyvalueobservingoptions options context...