思考: 什么是对象?
根据OC源码可以最新版OC最新版源码,
OC对象内都含有
isa指针
,可以说,凡是含有isa指针
的都是OC对象。
通过源码可知,
class
类内也含有isa指针
,那么由上面的结论可得到,class
类也是对象。
meta-class
元类的结构是和类一样的,则,元类也是对象。
OC对象可以分为三种
1.instance
实例对象
2.class
类对象
3.meta-class
元类对象
-
实例对象
实例对象的内存分配
- isa指针
- 成员变量
-
类对象
类对象的内存分配
- isa指针
- superclass指针
- 类的对象方法列表
- 协议信息
- 属性信息
- 成员变量信息
- 。。。
-
元类对象
元类对象的内存分配
- isa指针
- superclass指针
- 类的方法列表
- 。。。
-
isa指针
和superclass指针
后面会了解到
isa指针
和superclass指针
是用于方法查找的,是派生的原理。
instance的isa指针,指向class。
class的isa指针,指向meta-class。
class的superclass指针指向其父类,
如果父类为空,则指向nil, 是集成的元类