黑马程序员技术交流社区

标题: 关于isa指针和superclass指针 [打印本页]

作者: 小、小罗    时间: 2014-3-22 22:20
标题: 关于isa指针和superclass指针
本帖最后由 小、小罗 于 2014-3-23 17:08 编辑

老师在视屏中说:“每个对象都有一个isa指针,而且每个对象有isa指针的原因是基类NSObject中有一个class类型的isa成员变量”。
那根据继承语法每个类中也有一个isa指针咯?

老师又说:“每个类都有一个superclass指针”,那是不是因为基类NSObject中有一个superclass的成员变量?那用这种类创建的对象是不是也有一个superclass指针啊?

谁能具体解释一下这两个东东啊???
作者: yaozeyang_2014    时间: 2014-3-22 23:13
本帖最后由 yaozeyang_2014 于 2014-3-22 23:15 编辑

其实你会不会想得太多,对象里面的isa指针指向创建这个对象的类,需要调用方法的时候就去那个类调用,原理就是跟着isa的指向去找方法。假如有A,B,C三个类,B继承A,C继承B,那么用C创建对象P,P如果要调用方法就会先去C找,通过isa指向的类找,没有的话就继续通过C类中的superclass指向的B类找,直到找到为止,前提是继承的关系,不继承是没有那个superclass的指向的。。另外,对象应该是只有isa指针,类才有superclass的,而且我认为继承的情况下才可能有用。




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