1、只要程式啟動就會將所有類的**載入到記憶體中(在
main
函式執行之前)
, 放到**區
(無論該類有沒有被使用到都會被呼叫
) 2
、load
方法會在當前類被載入到記憶體的時候呼叫
, 有且僅會呼叫一次
3、當父類和子類都實現
load
方法時,
會先呼叫父類的
load
方法,
再呼叫子類的
load方法4
、先載入原始類,再載入分類的
load方法5
、當子類未實現
load
方法時,不會呼叫父類的
load方法6
、多個類都實現
load
方法,load
方法的呼叫順序,與
compile sources
中出現的順序一致
1、當類第一次被使用的時候就會呼叫
(建立類物件的時候)2
、initialize
方法在整個程式的執行過程中只會被呼叫一次
, 無論你使用多少次這個類都只會呼叫一次3、
initialize
用於對某乙個類進行一次性的初始化
4、先呼叫父類的
initialize
再呼叫子類的
initialize
5、當子類未實現
initialize
方法時,會把父類的實現繼承過來呼叫一遍,再次之前父類的initialize方法會被優先呼叫一次
6、當有多個
category
都實現了
initialize
方法,會覆蓋類中的方法,只執行乙個
(會執行
compile sources
列表中最後乙個
category
的initialize方法)
load和initialize的不同
import constants.h implementation constants void initialize void load endload,是載入類的時候,這裡是constants類,就會呼叫。也就是說,ios應用啟動的時候,就會載入所有的類的 void load方法。這樣有個缺點,...
iOS 比較load和initialize方法
ios中,類需要執行初始化操作才能正常使用。繼承於nsobject的類有兩種實現初始化類的方法 load initialize方法。void load 對於加入執行期的類或分類來說,如果該類實現了load方法,必定會呼叫此方法,且只呼叫一次。當包含類或分類的程式載入系統時,會執行該方法,一般都是程式...
初探 load和 initialize方法
void initialize訊息是在該類接收到其第乙個訊息之前呼叫。關於這裡的第乙個訊息需要特別說明一下,對於nsobject的runtime機制而言,其在呼叫nsobject的 void load訊息不被視為第乙個訊息,但是,如果像普通函式呼叫一樣直接呼叫nsobject的 void load訊...