美文网首页
[super message]底层实现

[super message]底层实现

作者: 小学生课代表 | 来源:发表于2022-05-01 21:58 被阅读0次

疑问:为什么有时调用[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.从父类开始查找方法的实现

相关文章

网友评论

      本文标题:[super message]底层实现

      本文链接:https://www.haomeiwen.com/subject/gzopyrtx.html