對于加入運行期系統(tǒng)中的每個類(class)及分類(category)來說埂陆,必定會調(diào)用此方法煌张,而且僅調(diào)用一次呐赡。通常在應(yīng)用程序啟動的時候,就會執(zhí)行此方法骏融。如果分類和其所屬的類都定義了load方法链嘀,則先調(diào)用類里面的井辜,再調(diào)用分類里面的。
- (void)initialize
對于每個類來說管闷,該方法會在程序首次用該類之前調(diào)用,且只調(diào)用一次窃肠。它是由運行期系統(tǒng)來調(diào)用的包个,絕不應(yīng)該通過代碼直接調(diào)用。
首先冤留,它是“惰性調(diào)用的”碧囊,也就是說,只有當(dāng)程序用到了相關(guān)的類時纤怒,才會調(diào)用糯而。因此,如果某個類一直都沒有使用泊窘,那么initialize方法就一直不會運行熄驼。這就等于說,應(yīng)用程序無須先把每個類的initialize都執(zhí)行一遍烘豹,這與load方法不同瓜贾。對于load來說,應(yīng)用程序必須阻塞并等著所有類的load都執(zhí)行完畢携悯,才能繼續(xù)祭芦。
要點
在加載階段,如果類實現(xiàn)了load方法憔鬼,那么系統(tǒng)就會調(diào)用它龟劲。分類里面也可以定義此方法,類的load方法要比分類中的先調(diào)用轴或。與其他方法不同昌跌,load方法不參與覆寫機制。
首次使用某個類之前照雁,系統(tǒng)會向其發(fā)送initialize消息避矢。由于此方法遵從普通的覆寫規(guī)則,所以通常應(yīng)該在里面判斷當(dāng)前初始化的是哪個類囊榜。
無法再編譯期設(shè)定的全局常量审胸,可以放在initialize方法里初始化。