OC语法 OC对象

思考: 什么是对象?

根据OC源码可以最新版OC最新版源码,

OC对象内都含有isa指针,可以说,凡是含有isa指针的都是OC对象。

通过源码可知,
class类内也含有isa指针,那么由上面的结论可得到,class类也是对象。
meta-class元类的结构是和类一样的,则,元类也是对象。

OC对象可以分为三种
1.instance实例对象
2.class类对象
3.meta-class元类对象

  • 实例对象
实例对象的内存分配
  1. isa指针
  2. 成员变量
  • 类对象
类对象的内存分配
  1. isa指针
  2. superclass指针
  3. 类的对象方法列表
  4. 协议信息
  5. 属性信息
  6. 成员变量信息
  7. 。。。
  • 元类对象
元类对象的内存分配
  1. isa指针
  2. superclass指针
  3. 类的方法列表
  4. 。。。
  • isa指针superclass指针

后面会了解到isa指针superclass指针是用于方法查找的,是派生的原理。
instance的isa指针,指向class。
class的isa指针,指向meta-class。
class的superclass指针指向其父类,
如果父类为空,则指向nil, 是集成的元类

OC语法 OC对象_第1张图片
image.png

你可能感兴趣的:(OC语法 OC对象)