一兼都、KVO的理解
1.KVO(鍵值監(jiān)聽(tīng))即Key-Value-Observing,是Objective-C對(duì)觀察者設(shè)計(jì)模式的一種實(shí)現(xiàn)国旷,那么它的工作原理就是對(duì)一個(gè)指定的被觀察對(duì)象(例如Person類)误趴,當(dāng)Person的屬性name的發(fā)生了改變時(shí),那么此時(shí)監(jiān)聽(tīng)對(duì)象就會(huì)獲得通知蓬抄,并作出相應(yīng)的處理丰嘉。
二、代碼分析
代碼實(shí)現(xiàn)思路:圖1中對(duì)Person類的屬性name進(jìn)行鍵值觀察倡鲸,通過(guò)圖3點(diǎn)擊模擬器屏幕來(lái)修改name的值供嚎,然后在圖2中的監(jiān)聽(tīng)方法里打印name變化的值。
二峭状、KVO底層實(shí)現(xiàn)原理(以Person類為例)? ??
? ? 1.自定義Person類的子類克滴,即派生出NSKVONotifying_Person這個(gè)類
? ? 2.重寫(xiě)setName:方法,在內(nèi)部恢復(fù)父類做法,通知觀察者
? ? 3.如何讓外界調(diào)用自定義Person的子類方法,修改當(dāng)前對(duì)象的isa指針,指向自定義的子類!
三、自定義KVO
你只要理解了KVO到底干了啥优床,那你就能對(duì)自定義的KVO有個(gè)很好的理解劝赔!
我是新手,如有不對(duì)的地方胆敞,歡迎大家指正着帽,大家一起共同進(jìn)步!謝謝移层!