OC中的initialize和load

Apple的文檔很清楚地說明了initialize和load的區(qū)別在于:load是只要類所在文件被引用就會被調用航棱,而initialize是在類或者其子類的第一個方法被調用前調用婴削。所以如果類沒有被引用進項目,就不會有l(wèi)oad調用负敏;但即使類文件被引用進來,但是沒有使用骂束,那么initialize也不會被調用苛谷。

它們的相同點在于:方法只會被調用一次。(其實這是相對runtime來說的格郁,后邊會做進一步解釋)腹殿。

文檔也明確闡述了方法調用的順序:父類(Superclass)的方法優(yōu)先于子類(Subclass)的方法独悴,類中的方法優(yōu)先于類別(Category)中的方法。


下面是官方給出的說明

+(void)initialize?

The runtime sendsinitializeto 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.

+(void)load?

Theloadmessage 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.

All+loadmethods in your image.

All C++ static initializers and C/C++__attribute__(constructor)functions in your image.

All initializers in frameworks that link to you.

In addition:

A class’s+loadmethod is called after all of its superclasses’+loadmethods.

A category+loadmethod is called after the class’s own+loadmethod.

In a custom implementation ofloadyou can therefore safely message other unrelated classes from the same image, but anyloadmethods implemented by those classes may not have run yet.

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末锣尉,一起剝皮案震驚了整個濱河市刻炒,隨后出現的幾起案子,更是在濱河造成了極大的恐慌自沧,老刑警劉巖坟奥,帶你破解...
    沈念sama閱讀 211,948評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異拇厢,居然都是意外死亡爱谁,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 90,371評論 3 385
  • 文/潘曉璐 我一進店門孝偎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來访敌,“玉大人,你說我怎么就攤上這事衣盾∷峦” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評論 0 348
  • 文/不壞的土叔 我叫張陵势决,是天一觀的道長阻塑。 經常有香客問我,道長果复,這世上最難降的妖魔是什么陈莽? 我笑而不...
    開封第一講書人閱讀 56,521評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮据悔,結果婚禮上传透,老公的妹妹穿的比我還像新娘。我一直安慰自己极颓,他們只是感情好朱盐,可當我...
    茶點故事閱讀 65,627評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著菠隆,像睡著了一般兵琳。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上骇径,一...
    開封第一講書人閱讀 49,842評論 1 290
  • 那天躯肌,我揣著相機與錄音,去河邊找鬼破衔。 笑死清女,一個胖子當著我的面吹牛,可吹牛的內容都是我干的晰筛。 我是一名探鬼主播嫡丙,決...
    沈念sama閱讀 38,997評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼拴袭,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了曙博?” 一聲冷哼從身側響起拥刻,我...
    開封第一講書人閱讀 37,741評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎父泳,沒想到半個月后般哼,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 44,203評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡惠窄,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,534評論 2 327
  • 正文 我和宋清朗相戀三年蒸眠,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片睬捶。...
    茶點故事閱讀 38,673評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡黔宛,死狀恐怖,靈堂內的尸體忽然破棺而出擒贸,到底是詐尸還是另有隱情臀晃,我是刑警寧澤,帶...
    沈念sama閱讀 34,339評論 4 330
  • 正文 年R本政府宣布介劫,位于F島的核電站徽惋,受9級特大地震影響,放射性物質發(fā)生泄漏座韵。R本人自食惡果不足惜险绘,卻給世界環(huán)境...
    茶點故事閱讀 39,955評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望誉碴。 院中可真熱鬧宦棺,春花似錦、人聲如沸黔帕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽成黄。三九已至呐芥,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奋岁,已是汗流浹背思瘟。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闻伶,地道東北人滨攻。 一個月前我還...
    沈念sama閱讀 46,394評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親铡买。 傳聞我的和親對象是個殘疾皇子更鲁,可洞房花燭夜當晚...
    茶點故事閱讀 43,562評論 2 349

推薦閱讀更多精彩內容

  • Apple的文檔很清楚地說明了initialize和load的區(qū)別在于:load是只要類所在文件被引用就會被調用霎箍,...
    風chat閱讀 230評論 0 0
  • 執(zhí)法只能照程序來奇钞,一步不落地來完成。
    對酒幾何閱讀 146評論 0 0
  • 名稱:閃聊版本:v1.0.0(發(fā)布時間:2016.10.26)設備系統(tǒng):ios 10.0.1功能簡介:花式聊天神器...
    西瓜_713閱讀 1,065評論 0 0
  • 周冰潔閱讀 320評論 6 5
  • 碧波池漂坏,是城東鬧市區(qū)的一個洗澡堂景埃,碧波池周圍分布著商業(yè)街,居民區(qū)顶别,還有一所不太知名的大學谷徙。比起那些廠礦專屬的澡堂,...
    蓮蕊添香閱讀 273評論 1 2