main()之前的過程有哪些?

main之前的加載過程

1)dyld 開始將程序二進制文件初始化

2)交由ImageLoader 讀取 image,其中包含了我們的類,方法等各種符號(Class、Protocol 、Selector、 IMP)

3)由于runtime 向dyld 綁定了回調(diào),當image加載到內(nèi)存后,dyld會通知runtime進行處理

4)runtime 接手后調(diào)用map_images做解析和處理

5)接下來load_images 中調(diào)用call_load_methods方法,遍歷所有加載進來的Class,按繼承層次依次調(diào)用Class的+load和其他Category的+load方法

6)至此 所有的信息都被加載到內(nèi)存中

7)最后dyld調(diào)用真正的main函數(shù)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容