重點 (三) : KVC/KVO
阿新 • • 發佈:2018-02-02
keyvalue val text 賬戶 數據模型 賦值 編程 不存在 用戶 由於ObjC主要基於Smalltalk進行設計,因此它有很多類似於Ruby、Python的動態特性,例如動態類型、動態加載、動態綁定等。今天我們著重介紹ObjC中的鍵值編碼(KVC)、鍵值監聽(KVO)特性:
- 鍵值編碼KVC
- 鍵值監聽
- 動態設置: setValue:屬性值 forKey:屬性名(用於簡單路徑)、setValue:屬性值 forKeyPath:屬性路徑(用於復合路徑,例如Person有一個Account類型的屬性,那麽person.account就是一個復合屬性)
- 動態讀取: valueForKey:屬性名 、valueForKeyPath:屬性名(用於復合路徑)
- 註冊指定Key路徑的監聽器: addObserver: forKeyPath: options: context:
- 刪除指定Key路徑的監聽器: removeObserver: forKeyPath、removeObserver: forKeyPath: context:
- 回調監聽: observeValueForKeyPath: ofObject: change: context:
- 通過addObserver: forKeyPath: options: context:為被監聽對象(它通常是數據模型)註冊監聽器
- 重寫監聽器的observeValueForKeyPath: ofObject: change: context:方法
重點 (三) : KVC/KVO