黑马程序员技术交流社区

标题: super关键字 [打印本页]

作者: kingloveyy    时间: 2014-9-25 23:44
标题: super关键字
     super关键字被编译器替换成了id objc_msgSendSuper(struct objc_super *super, SEL op,  ...),其中objc_super的结构是
  1. struct objc_super
  2. {
  3. id receiver;
  4. Class class;
  5. };
复制代码

          注意到objc_msgSendSuper和id objc_msgSend(id theReceiver, SEL theSelector, ...)的区别,多了一个Class class;

          class实际上就指向了找到当前method的class 对象的实例。所以在objc_msgSendSuper中查找方法是从参数class指向的class 实例对象的isa开始查找的,而不是从theReceiver也就是myobj这个对象的isa开始查找的


作者: liwei92244256    时间: 2014-9-26 00:08
super不是指向父类么~
作者: 水了个淼    时间: 2014-9-26 08:24
super 和self 很像
作者: 萧雨流风    时间: 2014-9-26 08:57
目前水平还不够,看不懂





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2