iOS底層學(xué)習(xí)6 -- load方法學(xué)習(xí)

+load方法會(huì)在runtime加載類,分類時(shí)調(diào)用
一個(gè)類的load方法,不管這個(gè)類會(huì)不會(huì)被用到,程序一啟動(dòng),在進(jìn)入main函數(shù)之前,都會(huì)先調(diào)用類的load方法。(項(xiàng)目中的所有類,分類,不管會(huì)不會(huì)被用到,都會(huì)被加載到內(nèi)存中去的)




上圖中,MJPerson+test2 是比MJPerson+test1稍晚點(diǎn)參與編譯的,越是往后參與編譯的,越優(yōu)先調(diào)用。

load方法調(diào)用時(shí)機(jī):在runtime加載類,加載分類的時(shí)候,就會(huì)調(diào)用它們對(duì)應(yīng)的load方法。




由上圖可知,會(huì)先用類的load方法,類的load方法調(diào)用完了,在調(diào)用分類的load方法。



load方法是通過(guò)方法地址,直接調(diào)用的。















由以上截圖可以得知:類的load方法調(diào)用順序跟類的編譯順序有關(guān),但是調(diào)用子類的load方法之前會(huì)先調(diào)用父類的load方法。分類的load方法的調(diào)用順序跟分類的編譯順序有關(guān)。(load方法只會(huì)調(diào)用一次,從始至終都只會(huì)調(diào)用一次)

首先會(huì)先調(diào)用完所有類的load方法,才會(huì)去調(diào)用分類的load方法





我們手動(dòng)調(diào)用laod方法([MJStudent load]),就要走消息發(fā)送流程了(也就是消息發(fā)送機(jī)制)

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

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