iOS的load方法與initialize方法

iOS的load方法與initialize方法

load

Invoked whenever a class or category is added to the Objective-C runtime; implement this method to perform class-specific behavior upon loading.

當類(Class)或者類別(Category)加入Runtime中時(就是被引用的時候)。
實現該方法筹陵,可以在加載時做一些類特有的操作刽锤。

Discussion

The load message is sent to classes and categories that are both dynamically loaded and statically linked, but only if the newly loaded class or category implements a method that can respond.

The order of initialization is as follows:

All initializers in any framework you link to.
調用所有的Framework中的初始化方法

All +load methods in your image.
調用所有的+load方法

All C++ static initializers and C/C++ attribute(constructor) functions in your image.
調用C++的靜態(tài)初始化方及C/C++中的attribute(constructor)函數

All initializers in frameworks that link to you.
調用所有鏈接到目標文件的framework中的初始化方法

In addition:

A class’s +load method is called after all of its superclasses’ +load methods.
一個類的+load方法在其父類的+load方法后調用

A category +load method is called after the class’s own +load method.
一個Category的+load方法在被其擴展的類的自有+load方法后調用

In a custom implementation of load you can therefore safely message other unrelated classes from the same image, but any load methods implemented by those classes may not have run yet.
在+load方法中,可以安全地向同一二進制包中的其它無關的類發(fā)送消息朦佩,但接收消息的類中的+load方法可能尚未被調用并思。

initialize

Initializes the class before it receives its first message.

在這個類接收第一條消息之前調用。

Discussion

The runtime sends initialize to each class in a program exactly one time just before the class, or any class that inherits from it, is sent its first message from within the program. (Thus the method may never be invoked if the class is not used.) The runtime sends the initialize message to classes in a thread-safe manner. Superclasses receive this message before their subclasses.

Runtime在一個程序中每一個類的一個程序中發(fā)送一個初始化一次语稠,或是從它繼承的任何類中宋彼,都是在程序中發(fā)送第一條消息。(因此仙畦,當該類不使用時输涕,該方法可能永遠不會被調用。)運行時發(fā)送一個線程安全的方式初始化消息慨畸。父類的調用一定在子類之前莱坎。

對比

相同點

  1. 在不考慮開發(fā)者主動使用的情況下,系統最多會調用一次
  2. 如果父類和子類都被調用寸士,父類的調用一定在子類之前型奥,
  3. 類中的方法優(yōu)先于類別(Category)中的方法。
  4. 都是為了應用運行提前創(chuàng)建合適的運行環(huán)境
  5. 在使用時都不要過重地依賴于這兩個方法碉京,除非真正必要

不同點

load是只要類所在文件被引用就會被調用(這里是引用進項目厢汹,不是被其他的文件引用),而initialize是在類或者其子類的第一個方法被調用前調用谐宙。所以如果類沒有被引用進項目烫葬,就不會有l(wèi)oad調用;但即使類文件被引用進來,但是沒有使用搭综,那么initialize也不會被調用垢箕。

總結 +(void)load +(void)initialize
執(zhí)行時機 在程序運行后立即執(zhí)行 在類的方法第一次被調時執(zhí)行
若自身未定義,是否沿用父類的方法兑巾?
類別中的定義 全都執(zhí)行条获,但后于類中的方法 覆蓋類中的方法,只執(zhí)行一個
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末蒋歌,一起剝皮案震驚了整個濱河市帅掘,隨后出現的幾起案子,更是在濱河造成了極大的恐慌堂油,老刑警劉巖修档,帶你破解...
    沈念sama閱讀 206,839評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異府框,居然都是意外死亡吱窝,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 88,543評論 2 382
  • 文/潘曉璐 我一進店門迫靖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來院峡,“玉大人,你說我怎么就攤上這事系宜∷河瑁” “怎么了?”我有些...
    開封第一講書人閱讀 153,116評論 0 344
  • 文/不壞的土叔 我叫張陵蜈首,是天一觀的道長实抡。 經常有香客問我,道長欢策,這世上最難降的妖魔是什么吆寨? 我笑而不...
    開封第一講書人閱讀 55,371評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮踩寇,結果婚禮上啄清,老公的妹妹穿的比我還像新娘。我一直安慰自己俺孙,他們只是感情好辣卒,可當我...
    茶點故事閱讀 64,384評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著睛榄,像睡著了一般荣茫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上场靴,一...
    開封第一講書人閱讀 49,111評論 1 285
  • 那天啡莉,我揣著相機與錄音港准,去河邊找鬼。 笑死咧欣,一個胖子當著我的面吹牛浅缸,可吹牛的內容都是我干的。 我是一名探鬼主播魄咕,決...
    沈念sama閱讀 38,416評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼衩椒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了哮兰?” 一聲冷哼從身側響起毛萌,我...
    開封第一講書人閱讀 37,053評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎奠蹬,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體嗡午,經...
    沈念sama閱讀 43,558評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡囤躁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,007評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了荔睹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片狸演。...
    茶點故事閱讀 38,117評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖僻他,靈堂內的尸體忽然破棺而出宵距,到底是詐尸還是另有隱情,我是刑警寧澤吨拗,帶...
    沈念sama閱讀 33,756評論 4 324
  • 正文 年R本政府宣布满哪,位于F島的核電站,受9級特大地震影響劝篷,放射性物質發(fā)生泄漏哨鸭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,324評論 3 307
  • 文/蒙蒙 一娇妓、第九天 我趴在偏房一處隱蔽的房頂上張望像鸡。 院中可真熱鬧板熊,春花似錦由蘑、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,315評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蛔钙。三九已至,卻和暖如春荠医,著一層夾襖步出監(jiān)牢的瞬間夸楣,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,539評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留豫喧,地道東北人石洗。 一個月前我還...
    沈念sama閱讀 45,578評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像紧显,于是被迫代替她去往敵國和親讲衫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,877評論 2 345

推薦閱讀更多精彩內容