KVO的本質(zhì)

1梨撞、如果你給一個Person實例添加KVO燥滑,那么這個實例的的isa指針指向的是派生出來了NSKVONotification_Person類對象渐北,折耳根類對象是Runtime動態(tài)創(chuàng)建出來的,只要添加了KVO就會創(chuàng)建铭拧,他只是Person的一個子類赃蛛,NSKVONotification_Person的superclass指向的還是Person這個類

2、NSKVONotification_Person中重寫了你監(jiān)聽屬性的set方法搀菩,這個set方法調(diào)用了NSSetInt(XXX類型而已)ValueAndNotify方法

3呕臂、NSSetInt(XXX類型而已)ValueAndNotify方法的實現(xiàn)

[self willChangeValueForKey];

[super setAge:age];//調(diào)用父類的set方法

[self didChangeValueForKey];

4、didChangeValueForKey 這個方法會調(diào)用監(jiān)聽起的observeValueForkeyPath方法

5肪跋、派生類NSKVONotification_Person中除了有重寫setAge方法歧蒋,還有dealloc? classs? _isKVO 方法

KVO的本質(zhì)

1、利用Runtime給對象的類添加一個NSKVONotification_XXX的派生類,并且讓這個實例對象的isa指針指向這個派生類

2疏尿、當(dāng)被監(jiān)聽的屬性發(fā)生改變時,會通過實例的isa指針找到這個派生類易桃,調(diào)用派生類里面的set方法

3褥琐、派生類中的set方法調(diào)用了NSSetXXXValueAndNotify方法

4、NSSetXXXValueAndNotify這個方法中又調(diào)用了

willChangeValueForKey

[super setXXX:]

didChangeValueForKey;

5晤郑、didChangeValueForKey中又調(diào)用了observer的observerValueForKeyPayh方法

手動觸發(fā)KVO

可以自己手動調(diào)用willChangeValueForKey 和 didChangeValueForKey

直接誒修改成員變量的值(person->age = 10)敌呈,是不會掉用KVO的,因為沒有調(diào)用set方法造寝,如果你要能夠監(jiān)聽到KVO磕洪,那么你需要手動調(diào)用willChangeValueForKey 和?didChangeValueForKey

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市诫龙,隨后出現(xiàn)的幾起案子析显,更是在濱河造成了極大的恐慌,老刑警劉巖签赃,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谷异,死亡現(xiàn)場離奇詭異,居然都是意外死亡锦聊,警方通過查閱死者的電腦和手機(jī)歹嘹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來孔庭,“玉大人尺上,你說我怎么就攤上這事≡驳剑” “怎么了怎抛?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長芽淡。 經(jīng)常有香客問我抽诉,道長,這世上最難降的妖魔是什么吐绵? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任迹淌,我火速辦了婚禮,結(jié)果婚禮上己单,老公的妹妹穿的比我還像新娘唉窃。我一直安慰自己,他們只是感情好纹笼,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布纹份。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蔓涧。 梳的紋絲不亂的頭發(fā)上件已,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機(jī)與錄音元暴,去河邊找鬼篷扩。 笑死,一個胖子當(dāng)著我的面吹牛茉盏,可吹牛的內(nèi)容都是我干的鉴未。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼鸠姨,長吁一口氣:“原來是場噩夢啊……” “哼铜秆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起讶迁,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤连茧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后巍糯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梅屉,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年鳞贷,在試婚紗的時候發(fā)現(xiàn)自己被綠了坯汤。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡搀愧,死狀恐怖惰聂,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情咱筛,我是刑警寧澤搓幌,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站迅箩,受9級特大地震影響溉愁,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜饲趋,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一拐揭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧奕塑,春花似錦堂污、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讨衣。三九已至,卻和暖如春式镐,著一層夾襖步出監(jiān)牢的瞬間反镇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工娘汞, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留歹茶,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓价说,卻偏偏與公主長得像辆亏,于是被迫代替她去往敵國和親风秤。 傳聞我的和親對象是個殘疾皇子鳖目,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 面試問題: iOS用什么方式實現(xiàn)對一個對象的KVO? 如何手動觸發(fā)KVO缤弦? KVO簡介 KVO就是鍵值觀測领迈。有時候...
    雪山飛狐_91ae閱讀 4,564評論 10 36
  • KVC/KVO實現(xiàn)的根本是Objective-C的動態(tài)性和runtime動態(tài)運(yùn)行時isa-swizzling方法 ...
    三秋樹下閱讀 303評論 0 0
  • 問題 iOS用什么方式實現(xiàn)對一個對象的KVO狸捅?(KVO的本質(zhì)是什么?) 如何手動觸發(fā)KVO 累提? 首先需要了解KVO...
    hjltony閱讀 574評論 0 2
  • KVC KVC定義 KVC(Key-value coding)鍵值編碼尘喝,就是指iOS的開發(fā)中,可以允許開發(fā)者通過K...
    暮年古稀ZC閱讀 2,128評論 2 9
  • 夜深悠悠冥想斋陪, 月半切切思量朽褪, 天也茫茫, 心也茫茫 望斷遙眺水一方无虚, 吶頭像在手機(jī)靜躺缔赠, 天漸深在天邊遠(yuǎn)望, 它...
    e74a8d4d7c2f閱讀 281評論 0 1