alloc探索

alloc初探

我們運行如下代碼:


image.png

通過控制臺伟阔,我們可以看到打印結(jié)果如下:


image.png

可以看到打印的是同一個對象鼻疮,不同的只是它們的指針地址(右邊箭頭所示),指向同一塊內(nèi)存0x600002946760(左邊箭頭所示)。說明alloc就是在創(chuàng)建對象了巢墅,哪對象創(chuàng)建的具體過程是怎樣的呢架谎?這時就要查看alloc的源碼實現(xiàn)了炸宵。
選中alloc并點擊Jump to Definition 或者control+command+alloc 然后選中NSObject并跳轉(zhuǎn)進去,發(fā)現(xiàn)只有alloc方法的聲明:
image.png

怎么辦呢谷扣?這里教大家一些方法:
1土全、control+Step into


image.png

2、通過匯編查看(Debug--->DebugWorkflow--->Always show Disassembly)
image.png

這里我們使用第一種方式会涎,如圖所示:
image.png

發(fā)現(xiàn)這里調(diào)用的是objc_alloc裹匙,我們添加一個符號斷點看一下:
image.png

發(fā)現(xiàn)是libobjc.A.dylib,接下來就要開始探究libobjc

libobjc源碼探索

運行代碼在塔,并添加符號斷點objc_alloc幻件,它會進入objc_alloc,如圖:


image.png

接下來會進入callAlloc(第一次)


image.png

一步步往下走蛔溃,發(fā)現(xiàn)這里進行了一次objc_msgSend
image.png

搜索alloc绰沥,如圖:


image.png

進入_objc_rootAlloc,如圖:
image.png

又來到了callAlloc這個方法中(第二次)贺待,兩次參數(shù)不同
image.png

進入_objc_rootAllocWithZone(cls, nil)徽曲,如圖:
image.png

進入_class_createInstancesFromZone,如圖:
image.png

這里面都進行了哪些操作呢麸塞?這里我們來看一下:
1秃臣、計算需要開辟的內(nèi)存大小,同時進行了字節(jié)對齊(16字節(jié))


image.png

2哪工、根據(jù)計算的大小去申請內(nèi)存
image.png

3奥此、將對象與申請的空間進行綁定并返回
image.png

下面是流程圖:
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市雁比,隨后出現(xiàn)的幾起案子稚虎,更是在濱河造成了極大的恐慌,老刑警劉巖偎捎,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蠢终,死亡現(xiàn)場離奇詭異序攘,居然都是意外死亡,警方通過查閱死者的電腦和手機寻拂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門程奠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人祭钉,你說我怎么就攤上這事瞄沙。” “怎么了慌核?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵帕识,是天一觀的道長。 經(jīng)常有香客問我遂铡,道長,這世上最難降的妖魔是什么晶姊? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任扒接,我火速辦了婚禮,結(jié)果婚禮上们衙,老公的妹妹穿的比我還像新娘钾怔。我一直安慰自己,他們只是感情好蒙挑,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布宗侦。 她就那樣靜靜地躺著,像睡著了一般忆蚀。 火紅的嫁衣襯著肌膚如雪矾利。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天馋袜,我揣著相機與錄音男旗,去河邊找鬼。 笑死欣鳖,一個胖子當著我的面吹牛察皇,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播泽台,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼什荣,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了怀酷?” 一聲冷哼從身側(cè)響起稻爬,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎胰坟,沒想到半個月后因篇,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泞辐,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年竞滓,在試婚紗的時候發(fā)現(xiàn)自己被綠了咐吼。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡商佑,死狀恐怖锯茄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情茶没,我是刑警寧澤肌幽,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站抓半,受9級特大地震影響喂急,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜笛求,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一廊移、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧探入,春花似錦狡孔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至植旧,卻和暖如春辱揭,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背病附。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工界阁, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人胖喳。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓泡躯,卻偏偏與公主長得像,于是被迫代替她去往敵國和親丽焊。 傳聞我的和親對象是個殘疾皇子较剃,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

推薦閱讀更多精彩內(nèi)容