今天我們來說說結(jié)構(gòu)體內(nèi)存對齊,廢話少說~~ 先上代碼和輸出結(jié)果: 代碼解析: 1.普通結(jié)構(gòu)體 struct MyStruct1 { doublea; // 占8字節(jié) 起...
首先我們從alloc流程中initInstanceIsa開始方法入手: 接下來跟進(jìn)isa_t: 接下來看看ISA_BITFIELD都包含什么: nonpointer:表示是否...
這片文章主要分析的是類的結(jié)構(gòu)以及對象-類-元類-根元類之間的走位. 一. isa的指向以及類之間的關(guān)系 準(zhǔn)備工作定義兩個類 LLPersonLLTeacher (LLTea...
1.方法歸屬 自定義類一個實(shí)例方法和一個類方法 main函數(shù)調(diào)用 lgObjc_copyMethodList 函數(shù):用于獲取類的方法列表 lgInstanceMethod_c...
一、初探cache_t 1.cache_t結(jié)構(gòu) 首先找到objc_class 點(diǎn)擊cache進(jìn)去看看 太多了 就不都截圖了 看看宏定義是什么回事 CACHE_MASK_STO...
1.runtime簡介 Runtime分為兩個版本,legacy和modern,分別對應(yīng)Objective-C 1.0和Objective-C 2.0。我們通常只需要專注于m...
在快速查找流程中,如果沒有還沒有找到方法實(shí)現(xiàn),就會走到慢速查找流程 慢速查找流程分析 首先我們先來調(diào)試一下 在main中,例如[person say666]對象方法調(diào)用處加一...
1. instrumentObjcMessageSends輔助分析 在調(diào)用方法前后加上instrumentObjcMessageSends,運(yùn)行后在文件夾\tmp\下會產(chǎn)生一...
本文的目的主要是分析dyld的加載流程 首先我們先運(yùn)行個代碼 來引入我們今天的主題~~ 運(yùn)行結(jié)果: 運(yùn)行程序,查看 load、kcFunc、main的打印順序,下面是打印結(jié)果...