KVC

通過KVC修改屬性會(huì)觸發(fā)KVO嗎

會(huì)觸發(fā)

KVC的賦值和取值過程是怎么樣的 原理是什么

KVC

KVC的全稱是Key-Value Coding 俗稱"鍵植編碼"  可以通過一個(gè)key來訪問某個(gè)屬性
常見的API有
- (void)setValue:(id)value forKeyPath:(NSString *)keyPath;
- (void)setValue:(id)value forKey:(NSString *)key;
- (id)valueForKeyPath:(NSString *)keyPath;
- (id)valueForKey:(NSString *)key; 
setValue:forKey:的原理
setValue:forKey:的原理.png

accessInstanceVariablesDirectly方法的默認(rèn)返回值是YES

valueForKey:的原理
valueForKey:的原理.png

當(dāng)沒有設(shè)置為屬性 只是成員變量 直接使用KVC改變值 也會(huì)觸發(fā)KVO 是因?yàn)楸举|(zhì)上底層是使用了手動(dòng)觸發(fā)KVO的方法 willChangeValueForKey didChangeValueForKey

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • KVC(Key-value coding)鍵值編碼,單看這個(gè)名字可能不太好理解。其實(shí)翻譯一下就很簡(jiǎn)單了,就是指iO...
    我的夢(mèng)工廠閱讀 939評(píng)論 1 8
  • KVC(Key-valuecoding)鍵值編碼,單看這個(gè)名字可能不太好理解。其實(shí)翻譯一下就很簡(jiǎn)單了,就是指iOS...
    榕樹頭閱讀 772評(píng)論 0 2
  • KVC/KVO 概念 KVC : 即 Key-Value-Coding,用于鍵值編碼。作為 cocoa 的一個(gè)標(biāo)準(zhǔn)...
    滿臉胡茬的小碼農(nóng)閱讀 2,089評(píng)論 2 8
  • 1. KVO 一.KVO原理的使用與證明 我們?cè)陂_發(fā)的過程中經(jīng)常使用KVO和KVC,但是我們并不了解其底層原理和功...
    周灬閱讀 925評(píng)論 0 9
  • 在談?wù)揔VO和KVC之前,先引出幾個(gè)問題 問題一:iOS用什么方式實(shí)現(xiàn)KVO,你可以理解成KVO本質(zhì)是什么? 1....
    coder_feng閱讀 680評(píng)論 0 0

友情鏈接更多精彩內(nèi)容