KVC和KVO的區別

KVC是一種訪問一個對象屬性的方法 即是指NSKeyValueCoding

訪問一個對象屬性我們可以 person.age? 也可以通過kvc的方式? [person valueForKey:@"age"];? 假如給出的字符串沒有對象的屬性 會訪問valueForUndefineKey方法 默認實現是raise 一個異常 但你可以重寫這個方法,? setValue的時候也是一樣的道理,當然KVC只是這么簡單它還有keypath方法

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

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

相當于這樣……

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

KVO 就是基于 KVC 實現的關鍵技術之一,它的實現原理就是,當對象的屬性被修改時候,KVO就會自動向所有實施監聽的對象發送一個通知

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容