全稱是Key-value observing,鍵值觀察機制。提供了一種當其它對象屬性被修改的時候能通知當前對象的機制。server
在ObjC中使用KVO操做經常使用的方法以下:對象
- 註冊指定Key路徑的監聽器: addObserver: forKeyPath: options: context:
- 刪除指定Key路徑的監聽器: removeObserver: forKeyPath、removeObserver: forKeyPath: context:
- 回調監聽: observeValueForKeyPath: ofObject: change: context:
KVO的使用步驟也比較簡單:rem
- 經過addObserver: forKeyPath: options: context:爲被監聽對象(它一般是數據模型)註冊監聽器
- 重寫監聽器的observeValueForKeyPath: ofObject: change: context:方法
簡單的說就是三步:io
1. 註冊,指定被觀察者的屬性,方法
2. 實現回調方法數據
3. 移除觀察vi