NSTimer/NSNotification/觀察者模式

都需要在dealloc中釋放

-(void)dealloc{

? ? //移除監(jiān)聽、觀察對象

[object removeObserver:self forKeyPath:@"age"];

}

?1 、//添加觀察對象

?[object addObserver: observer forKeyPath: @"age" options: 0 context: nil];

object: 被觀察者

observer: 觀察者,一般是 self 控制器

options: 有四個值

1、NSKeyValueObservingOptionNew 把更改之前的值提供給處理方法

2、NSKeyValueObservingOptionOld 把更改之后的值提供給處理方法

3、NSKeyValueObservingOptionInitial 把初始化的值提供給處理方法, 一旦注冊,立馬就會調(diào)用一次。通常它會帶有新值,而不會帶有舊值。

4、NSKeyValueObservingOptionPrior 分2次調(diào)用。在值改變之前和值改變之后。

context:上下文,可以帶一些參數(shù),任何類型都可以

所有的 kvo 監(jiān)聽到事件,都會調(diào)用此方法

1. 觀察的屬性

2. 觀察的對象

3. change 屬性變化字典

4. 上下文,與監(jiān)聽的時候傳遞的一致

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

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

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

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,666評論 1 32
  • 寫在前面 程序設(shè)計語言中有各種各樣的設(shè)計模式(pattern)和與此對應(yīng)的反設(shè)計模式(anti-pattern),...
    Frankxp閱讀 5,012評論 0 23
  • 什么是觀察者模式?我們先打個比方,這就像你訂報紙。比如你想知道美國最近放生了些新聞,你可能會訂閱一份美國周刊,然后...
    泥孩兒0107閱讀 775評論 0 0
  • KVO 作為 iOS 中一種強(qiáng)大并且有效的機(jī)制,為 iOS 開發(fā)者們提供了很多的便利;我們可以使用 KVO 來檢測...
    JzRo閱讀 1,079評論 0 2
  • 為什么如今的我們在互相面對時 多了一份克制 這是 一份被克制的情感 一份被壓抑的情感 只因?yàn)?愛 帶給我們的感覺...
    玉潤閱讀 202評論 0 0

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