load方法和 initialize方法的呼叫

2021-09-14 04:23:20 字數 691 閱讀 7344

一. load 方法

1.+load

方法會在

runtime載入類

、分類時呼叫

2. 每個類、

分類的+load

,在程式執行過程中只呼叫一次

3.呼叫順序

3.1 先呼叫類的+load,

按照編譯先後順序呼叫(先編譯,先呼叫)

3.2呼叫子類的

+load

之前會先呼叫父類的

+load

3.3.再呼叫分類的

+load,按照編譯先後順序呼叫(先編譯,先呼叫)

4. 直接拿imp 執行load方法, 不走objc_msgsend

二. initialize 方法

1. initialize

方法會在

類第一次接收到訊息時呼叫

2.先呼叫父類的

+initialize

,再呼叫子類的

+initialize (先初始化父類,再初始化子類,每個類只會初始化1次

3. +initialize

是通過objc_msgsend進行呼叫的, 

如果子類沒有實現

+initialize

,會呼叫父類的

+initialize

(所以父類的

+initialize

可能會被呼叫多次)

Hibernate get和load方法區別

get和load方式是根據id取得乙個記錄 下邊詳細說一下get和load的不同,因為有些時候為了對比也會把find加進來。color red b 1.從返回結果上對比 b color load方式檢索不到的話會丟擲org.hibernate.objectnotfoundexception異常 ge...

初探 load和 initialize方法

void initialize訊息是在該類接收到其第乙個訊息之前呼叫。關於這裡的第乙個訊息需要特別說明一下,對於nsobject的runtime機制而言,其在呼叫nsobject的 void load訊息不被視為第乙個訊息,但是,如果像普通函式呼叫一樣直接呼叫nsobject的 void load訊...

load和initialize方法詳解

問題 1.load方法什麼時候呼叫 2.load方法呼叫原理 3.load方法呼叫順序 4.load方法呼叫次數 結論 load方法會在runtime載入類,分類時呼叫每個類,分類的 laod方法,在程式執行過程中只呼叫一次。load方法是根據方法位址呼叫,並不是objc msgsend函式呼叫 l...