Runtime中的类与内省

96
酷酷的哀殿
2016.04.22 22:44* 字数 232
.png
  • 通过1和2,可以实现给实例发送方法,通过2可以查找父类实现的方法
  • 通过3和4,可以给类发送方法,比如 [NSArray alloc],通过4,可以查找父类实现的方法
  • 关于5,在runtime的设计中,objc_class 是继承 objc_object 的。它们都需要isa指针来保存实例的数据(比如类的类型,是否为 tag 指针,方法列表)。所以,类对象需要有 isa 指针,isa 指针会指向父类的 isa 指针,根元类的 isa 指针指向了根元类。最终,所有的元类的isa指针指向了根元类。
  • 通过2,4,6,所有创建的根类的子类。无论是实例还是元类,都可以知道通过查找superclass的方式判断出它们继承自根类。
OC 知识
Web note ad 1