明确isa在继承上的作用

isa指针是所有Objective-C对象都具备的。
它指向类该对象所属的类,在Objective-C中类也是个对象,所以isa指针指向了该对象的类对象。

每个类对象都维护了一个方法调度表,还有一个指向基类的指针,这样的话继承层次就可以被组织起来了,就像个链表一样。
这样一来每个类对象只需要负责持有自己的实例变量即可。

isa存在的意义在于它提供了消息分发机制和Cocoa对象的动态能力。

一个对象的isa的类型是Class,也就是isa是一个类对象类型的指针。
类对象的本质是一个结构体,
里面还有一个isa指针,它指向类对象的元类,元类包含了类的版本、名字、类方法等,所有元类对象最终都指向了NSObject。
里面指向父类对象的指针是super_class。元类对象也是如此,它们的super_class也指向各自原类的父类。


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 2,078评论 0 9
  • 首先说明,这篇文章几乎都是抄录的别人的博客,简书文章,在此总结,只是为了方便记忆和以后阅读,如果有什么失礼的地方,...
    LiYaoPeng阅读 5,344评论 1 14
  • 这篇文章完全是基于南峰子老师博客的转载 这篇文章完全是基于南峰子老师博客的转载 这篇文章完全是基于南峰子老师博客的...
    西木阅读 30,893评论 33 466
  • 当我每天过得很舒服的时候 我很烦恼 我清楚的很在这个年龄我应该吃苦奋斗 可我却很难进入那个状态 譬如起床这件事 每...
    杨啸啸阅读 203评论 0 0
  • 《错遇》 月光遮住了海面, 老鼠抓住了猫, 陈旧的酒桶里酿出了苹果, 画册还给了要赠予的那个, 我犹豫着拒绝了一个...
    半个绅士阅读 379评论 1 6

友情链接更多精彩内容