对象 类对象 元类
- 对象的isa指针指向类对象
- 类对象的isa指针指向元类
- 类对象和元类其他都是对象,是编译器为我们创建的。
对象初始化
- 先根据类对象初始化内存大小。
- 初始化对象isa指针即可。
方法的调用
- 对象方法的调用。实际上根据对象isa去类对象去查找对象方法去调用。找不到就去类对象的superCls指针去父类对象去查找,再找不到就进行消息转发。没有实现消息转发那就会崩溃。
- 类方法的调用。实际上我们代码用的类就是类对象。根据类对象isa指针去元类对象查找方法去调用,也会查找父类的元类对象。过程和对象方法调用类似。