1,所有父類的成員變量和自己的成員變量都會存放在該對象所對應(yīng)的存儲空間中镊屎。
2惹挟,每個對象內(nèi)部都有一個isa指針,指向他的類對象缝驳,類對象中存放著本身對象的a,對象方法列表(對象能夠接收的消息列表连锯,保存在它所對應(yīng)的類對象中)b,成員變量的列表。c,屬性列表用狱。類對象內(nèi)也有一個isa指針指向元對象(meta class)运怖,元對象內(nèi)部存放的是類方法列表,類對象內(nèi)部還有哦一個superclass的指針夏伊,指向他的父類對象
每個Objective-C對象都有相同的結(jié)構(gòu) :如下圖:
3摇展,根對象就是NSObject,他的superclass指針指向nil
4,類對象既然稱為對象溺忧,那它也是一個實例咏连,類對象中也有一個isa指針指向他的元類(meta class),即類對象是元類的實例盯孙,元類內(nèi)部存放的是類方法列表,根元類的isa指針指向自己祟滴,superclass指針指向NSObject類振惰。
一個objc對象的isa指針指向他的類對象,從而可以找到對象上的方法
objc中的類方法和實例方法有什么本質(zhì)區(qū)別和聯(lián)系
類方法:
1踱启,類方法是屬于類對象的 2报账,類方法只能通過類對象調(diào)用 3,類方法中的self是類對象 4,類方法中不能訪問成員變量 5埠偿,類方法可以調(diào)用其他的類方法 6透罢,類方法中不能直接調(diào)用對象方法
實例方法:
1,實例方法是屬于實例對象的 2冠蒋,實例方法只能通過實例對象調(diào)用羽圃,3,實例方法中的self是實例對象 4抖剿,實例方法中可以訪問成員變量 5朽寞,實例方法中直接調(diào)用實例方法6,實例方法中可以直接調(diào)用類方法(通過類名)