一个objc对象如何进行内存布局

一个objc对象如何进行内存布局?(考虑有父类的情况)

所有的父类的成员变量和自己的成员变量都在该对象所对应的存储空间中。

每一个对象内部都有一个isa指针指向类对象,类对象存放本对象的以下内容

  1. 对象方法列表
  2. 成员变量列表
  3. 属性列表
  4. 每个类对象内部也有一个isa指针指向元对象(meta class),元对象内部存放 类方法列表
  5. superclass指针,指向对象的父类对象。

根对象就是NSObject,它的superclass指针指向nil。

根元类的isa指针指向它自己,superclass指针指向NSObject。

一个objc对象的isa的指针指向什么?有什么作用?

指向他的类对象,从而可以找到对象上的方法