KVC和KVO看上去又是兩個挺牛的單詞簡寫,KVC是Key-Value Coding的簡寫,是鍵值編碼的意思。KVO是Key-Value Observing的簡寫,是鍵值觀察的意思。那麼我們能拿KVC和KVO幹些什麼事呢?這兩個縮寫單詞不能否認聽起來挺高端的樣子。這兩個方法都是runtime方法,我們先來介紹KVC。
1.KVC(Key-Value Coding)鍵值編碼
為了測試我們建立兩個測試類
測試類一:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
測試類二:
|
(1)我們可以用鍵值編碼給對象的屬性動态指派(必須得有标準的getter和setter方法,或者用@property聲明)
我們可以調用setValue: forKey: 方法以字元串的相識向對象發送消息,可以設定執行個體變量的值。第一個參數是要設定的值,第二個參數是執行個體變量的名稱
我們可以調用valueForKey: 來擷取執行個體變量的值,廢話少說,代碼走起:
|
代碼運作結果:
|
(2)我們可以通過鍵路徑給執行個體變量是其他類的對象指派 setValue: forKeyPath:
代碼如下: 接着上面的代碼來得,KVC的一項執行個體變量是SubKVCClass的對象
|
上面代碼的運作結果:
|
KVC的基本内容概就這些吧,當然啦還有在數組中使用KVC以及KVC中的運算-集合等,不做贅述啦。
2.介紹完KVC那麼我們來介紹一下KVO,鍵值觀察
鍵值觀察是個什麼東西啊?他有什麼用啊?怎麼用?從字面意思上說鍵值觀察就是觀察屬性值的變化,也是運作時的方法,當執行個體變量改變時,系統會自動采取一些動作。
KVO使用三步走:
(1)注冊成為觀察者
(2)觀察者定義KVO的回調
(3)移除觀察者
來點實際的,還得上代碼:
KVOClass接口:
|
KVOClass實作
20 21 22 23 24 25 26 27 28 29 30 31 | |
代碼說明:注冊觀察者的時候調用addObserver方法,第一個參數是觀察那個類,第二個參數是那個類中的那個屬性,第三個方法是觀察選項,第四個會傳到下面的觀察方法中
上面的代碼運作結果為:
|
作者:青玉伏案
出處:http://www.cnblogs.com/ludashi/
本文版權歸作者和共部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。
如果文中有什麼錯誤,歡迎指出。以免更多的人被誤導。
收履歷:某網際網路公司,招聘iOS/Android靠譜工程師,入職後,可内部聯系樓主,有小禮品贈送,有意者可郵箱投遞履歷:[email protected]