iOS_KVO實現原理

KVO簡而言之就是:

1、當一個object有觀察者時,動態(利用runtime機制)創建這個object的類的子類

2、對于每個被觀察的property,重寫其set方法

3、在重寫的set方法中調用- willChangeValueForKey:和- didChangeValueForKey:通知觀察者

4、當一個property沒有觀察者時,刪除重寫的方法

5、當沒有observer觀察任何一個property時,刪除動態創建的子類

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

推薦閱讀更多精彩內容

  • 一、概述 KVO,即:Key-Value Observing,它提供一種機制,當指定的對象的屬性被修改后,則其觀察...
    DeerRun閱讀 10,120評論 11 33
  • 轉至元數據結尾創建: 董瀟偉,最新修改于: 十二月 23, 2016 轉至元數據起始第一章:isa和Class一....
    40c0490e5268閱讀 1,768評論 0 9
  • 引用孫源的話 http://blog.sunnyxx.com/2014/03/09/objc_kvo_secret...
    charlotte2018閱讀 438評論 0 1
  • 上半年有段時間做了一個項目,項目中聊天界面用到了音頻播放,涉及到進度條,當時做android時候處理的不太好,由于...
    DaZenD閱讀 3,040評論 0 26
  • 一直有很多讀者給我發私信,咨詢我如何能夠創業成功。 我要告訴大家的是,想要創業成功絕非僅僅只需要一個好商機,好項目...
    time剛剛好閱讀 2,322評論 8 121