12.4 Objective-C對象的內(nèi)存分布

OC對象的內(nèi)存分布簡單來說就是下圖所示

最先是isa指針,指向它所屬的類,然后按照繼承鏈由高到低的排列順序,列出他們的成員變量。

所有父類的成員變量和自己的成員變量都會存放在該對象所對應的存儲空間中.

每一個對象內(nèi)部都有一個isa指針,指向他的類對象,類對象中存放著本對象的

對象方法列表(對象能夠接收的消息列表,保存在它所對應的類對象中)

成員變量的列表,

屬性列表,

它內(nèi)部也有一個isa指針指向元對象(meta class),元對象內(nèi)部存放的是類方法列表,類對象內(nèi)部還有一個superclass的指針,指向他的父類對象。

?? ?* 根對象(root class)就是NSObject,它的superclass指針指向nil

?? ?* 類對象既然稱為對象,那它也是一個實例。類對象中也有一個isa指針指向它的元類(meta class),即類對象是元類的實例。元類內(nèi)部存放的是類方法列表,根元類的isa指針指向自己,superclass指針指向NSObject類。

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

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