KVO原理(我是來騙星星的)

2021-06-29 01:17:16 字數 357 閱讀 2780

kvo的原理

簡而言之就是:

1、當乙個object有觀察者時,動態建立這個object的類的子類

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

3、在重寫的set方法中呼叫- willchangevalueforkey:和- didchangevalueforkey:通知觀察者

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

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

附上簡易kvodemo乙份

當然也會有福利的,給喜歡runtime的童鞋nsobject + dlintrospection

KVO實現原理

kvo的執行原理是基於執行時的 當乙個物件註冊了監聽者以後 程式執行時就會動態的建立被監聽者的乙個子類 nskvonotifying 建立該子類的物件 kvo只能監聽物件屬性通過setter方法改變時監聽 1 當乙個object有觀察者時,動態建立這個object的類的子類 2 對於每個被觀察的pr...

KVO 實現原理

1.self.person 要監聽的物件 2.引數說明 param addobserver 觀察者,負責處理監聽事件的物件 param forkeypath 要監聽的屬性 param options 觀察的選項 觀察新 舊值,也可以都觀察 param context 上下文,用於傳遞資料,可以利用上...

KVO實現原理

kvo 的全稱是 key value observing 俗稱 鍵值監聽 可以用於監聽某個物件屬性值的改變。下面來 一下kvo的本質 1.新建乙個xzperson類 import inte ce xzperson nsobject property nonatomic,assign int age ...