KVC與KVO

Key-Value Coding (KVC)

KVC,即是指 NSKeyValueCoding座舍,一個非正式的 Protocol沮翔,提供一種機制來間接訪問對象的屬性。KVO 就是基于 KVC 實現(xiàn)的關鍵技術之一曲秉。

一個對象擁有某些屬性采蚀。比如說,一個 Person 對象有一個 name 和一個 address 屬性承二。以 KVC 說法榆鼠,Person 對象分別有一個 value 對應他的 name 和 address 的 key。 key 只是一個字符串亥鸠,它對應的值可以是任意類型的對象妆够。從最基礎的層次上看,KVC 有兩個方法:一個是設置 key 的值负蚊,另一個是獲取 key 的值神妹。如下面的例子:

現(xiàn)在,如果 Person 有另外一個 key 配偶(spouse)家妆,spouse 的 key 值是另一個 Person 對象鸵荠,用 KVC 可以這樣寫:

key 與 key path 要區(qū)分開來,key 可以從一個對象中獲取值伤极,而 key path 可以將多個 key 用點號 “.” 分割連接起來蛹找,比如:

[p valueForKeyPath:@"spouse.name"];

相當于這樣……

[[p valueForKey:@"spouse"] valueForKey:@"name"];

好了,以上是 KVC 的基本知識哨坪,接著看看 KVO庸疾。

Key-Value Observing (KVO)

Key-Value Observing (KVO) 建立在 KVC 之上,它能夠觀察一個對象的 KVC key path 值的變化当编。舉個例子届慈,用代碼觀察一個 person 對象的 address 變化,以下是實現(xiàn)的三個方法:

watchPersonForChangeOfAddress: 實現(xiàn)觀察

observeValueForKeyPath:ofObject:change:context: 在被觀察的 key path 的值變化時調用忿偷。

dealloc 停止觀察

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末拧篮,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子牵舱,更是在濱河造成了極大的恐慌串绩,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件芜壁,死亡現(xiàn)場離奇詭異礁凡,居然都是意外死亡高氮,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門顷牌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來剪芍,“玉大人,你說我怎么就攤上這事窟蓝∽锕” “怎么了?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵运挫,是天一觀的道長状共。 經(jīng)常有香客問我,道長谁帕,這世上最難降的妖魔是什么峡继? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮匈挖,結果婚禮上碾牌,老公的妹妹穿的比我還像新娘。我一直安慰自己儡循,他們只是感情好舶吗,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著择膝,像睡著了一般誓琼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上调榄,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機與錄音呵扛,去河邊找鬼每庆。 笑死,一個胖子當著我的面吹牛今穿,可吹牛的內容都是我干的缤灵。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼蓝晒,長吁一口氣:“原來是場噩夢啊……” “哼腮出!你這毒婦竟也來了?” 一聲冷哼從身側響起芝薇,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤胚嘲,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后洛二,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體馋劈,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡攻锰,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了妓雾。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片娶吞。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖械姻,靈堂內的尸體忽然破棺而出妒蛇,到底是詐尸還是另有隱情,我是刑警寧澤楷拳,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布绣夺,位于F島的核電站,受9級特大地震影響唯竹,放射性物質發(fā)生泄漏乐导。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一浸颓、第九天 我趴在偏房一處隱蔽的房頂上張望物臂。 院中可真熱鬧,春花似錦产上、人聲如沸棵磷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽仪媒。三九已至,卻和暖如春谢鹊,著一層夾襖步出監(jiān)牢的瞬間算吩,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工佃扼, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留偎巢,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓兼耀,卻偏偏與公主長得像压昼,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子瘤运,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內容

  • KVC 與 KVO 是 Objective C 的關鍵概念窍霞,個人認為必須理解的東西,下面是實例講解拯坟。 (一)Key...
    Asserts閱讀 229評論 0 0
  • KVC 與 KVO 是 Objective C 的關鍵概念但金,個人認為必須理解的東西,下面是實例講解郁季。 Key-Va...
    韓七夏閱讀 230評論 0 1
  • Key-Value Codin(KVC) kvc即是指 NSKeyValueCoding傲绣,一個非正式的 Proto...
    JaneJie閱讀 294評論 0 2
  • 原路徑:https://magicalboy.com/kvc_and_kvo/KVC 與 KVO 是 Object...
    擇一城終老_蝸牛閱讀 151評論 0 0
  • KVC 與 KVO 是 Objective C 的關鍵概念掠哥,個人認為必須理解的東西,下面是實例講解秃诵。 其他相關文章...
    火星抄手閱讀 294評論 0 2