全稱: 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