疑問:為什么有時調用[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.從父類開始查找方法的實現