iOS 基礎(chǔ)知識整理(二)KVO

一般問起來kvo 不知道怎么回答 不就是 一個觀察者機(jī)制O街凇!:途础0颊ā!昼弟!
有什么好問的;够荨!K蕉拧!

好 現(xiàn)在來整理下 kvo的實(shí)現(xiàn)原理

kvo
k- key
v-value
o-observer

kvo遵循了NSKeyValueCoding救欧,是oc對觀察者模式的一種實(shí)現(xiàn)

實(shí)現(xiàn)原理

swift是一個靜態(tài)語言衰粹,沒有runtime機(jī)制,所以Swift里面想要用runtime 必須繼承NSObject

比如說 a 對象被觀察 這時候kvo就利用runtime 創(chuàng)建一個notic_a 的類 并且把當(dāng)前的isa指針執(zhí)行這個類 這個新類是原來類的子類 還會將原類的實(shí)例方法重寫
并且 kvo為NSKVONotifion_a重寫setter方法笆怠,在重寫的setter方法中 修改值之前會調(diào)用willchangeValue 修改之后會調(diào)用didChangeValueForKey最后共這兩個方法 將在observalueForKeyPath中被調(diào)用

kvo缺點(diǎn)

重復(fù)的add和remove導(dǎo)致crash

observer被釋放導(dǎo)致崩潰

keyPath傳錯導(dǎo)致崩潰

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末铝耻,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子蹬刷,更是在濱河造成了極大的恐慌瓢捉,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,591評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件办成,死亡現(xiàn)場離奇詭異泡态,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)迂卢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,448評論 3 392
  • 文/潘曉璐 我一進(jìn)店門某弦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人而克,你說我怎么就攤上這事靶壮。” “怎么了员萍?”我有些...
    開封第一講書人閱讀 162,823評論 0 353
  • 文/不壞的土叔 我叫張陵腾降,是天一觀的道長。 經(jīng)常有香客問我碎绎,道長螃壤,這世上最難降的妖魔是什么抗果? 我笑而不...
    開封第一講書人閱讀 58,204評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮映穗,結(jié)果婚禮上窖张,老公的妹妹穿的比我還像新娘。我一直安慰自己蚁滋,他們只是感情好宿接,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,228評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著辕录,像睡著了一般睦霎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上走诞,一...
    開封第一講書人閱讀 51,190評論 1 299
  • 那天副女,我揣著相機(jī)與錄音,去河邊找鬼蚣旱。 笑死碑幅,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的塞绿。 我是一名探鬼主播沟涨,決...
    沈念sama閱讀 40,078評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼异吻!你這毒婦竟也來了裹赴?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,923評論 0 274
  • 序言:老撾萬榮一對情侶失蹤诀浪,失蹤者是張志新(化名)和其女友劉穎棋返,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體雷猪,經(jīng)...
    沈念sama閱讀 45,334評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡睛竣,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,550評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了求摇。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酵颁。...
    茶點(diǎn)故事閱讀 39,727評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖月帝,靈堂內(nèi)的尸體忽然破棺而出躏惋,到底是詐尸還是另有隱情,我是刑警寧澤嚷辅,帶...
    沈念sama閱讀 35,428評論 5 343
  • 正文 年R本政府宣布簿姨,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏扁位。R本人自食惡果不足惜准潭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,022評論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望域仇。 院中可真熱鬧刑然,春花似錦、人聲如沸暇务。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,672評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垦细。三九已至择镇,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間括改,已是汗流浹背腻豌。 一陣腳步聲響...
    開封第一講書人閱讀 32,826評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嘱能,地道東北人吝梅。 一個月前我還...
    沈念sama閱讀 47,734評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像惹骂,于是被迫代替她去往敵國和親苏携。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,619評論 2 354

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

  • KVC KVC定義 KVC(Key-value coding)鍵值編碼析苫,就是指iOS的開發(fā)中,可以允許開發(fā)者通過K...
    暮年古稀ZC閱讀 2,141評論 2 9
  • 面向?qū)ο蟮娜筇匦裕悍庋b穿扳、繼承衩侥、多態(tài) OC內(nèi)存管理 _strong 引用計數(shù)器來控制對象的生命周期。 _weak...
    運(yùn)氣不夠技術(shù)湊閱讀 1,095評論 0 10
  • 本文參考鏈接: iOS KVO詳解 Foundation: NSKeyValueObserving(KVO) KV...
    擰發(fā)條鳥xds閱讀 2,965評論 0 6
  • KVC KVC定義 KVC(Key-value coding)鍵值編碼矛物,就是指iOS的開發(fā)中茫死,可以允許開發(fā)者通過K...
    jackyshan閱讀 51,881評論 9 200
  • 連著有好幾年了,都在說90后創(chuàng)業(yè)這個事履羞,手機(jī)里峦萎,電腦上,你能接觸的方方面面都渲染了忆首,以前創(chuàng)業(yè)都是三十...
    KevenTao閱讀 299評論 0 1