ios裏的KVO模式

全稱: Key Value Observing

在ios裏,可以添加觀察者模式,來實現某個property更改後,通知指定的類。

然後到observeValueForKeyPath:ofObject:change:context:提供處理

1 [object addObserver: observer forKeyPath: @"frame" options: 0 context: nil];

 

調用方法是裏: 

  object : 被觀察對象

  observer: 觀察對象

  forKeyPath裏面帶上property的name,如UIView的frame、center等等

  options: 有4個值,分別是:

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

  NSKeyValueObservingOptionOld 把更改之後的值提供給處理方法

  NSKeyValueObservingOptionInitial 把初始化的值提供給處理方法,一旦註冊,立馬就會調用一次。通常它會帶有新值,而不會帶有舊值。

  NSKeyValueObservingOptionPrior 分2次調用。在值改變之前和值改變之後。

    注:例子裏的0就代表不帶任何參數進去

  context: 可以帶入一些參數,其實這個挺好用的,任何類型都可以,自己強轉就好了。

 

處理方法裏:

  keyPath: 對應forKeyPath

  object:  被觀察的對象

  change:  對應options裏的NSKeyValueObservingOptionNew、NSKeyValueObservingOptionOld等

  context: 對應context

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章