疑问:为什么有时调用[super class]
会打印子类的类?
此方法调用:
- objc_msgSendSuper(arg,@selector(class));
- struct objc_super arg = {self,[父类 class]}
- struct objc_super {receiver消息接收者,super_class消息接受者的父类}
- class 方法底层实现是:object_getClass(self)
所以返回的还是子类的类(self)
所以[super message]底层实现:
1.消息接收者仍然是子类对象
2.从父类开始查找方法的实现