iOS开发- OC对象的isa和superclass总结

   OC对象主要分为3类: 实例对象(instance 对象)、类对象(class对象)、元类对象(meta-class对象).

根据OC源码,instance对象内存包含的信息:

     * isa指针

     * 成员变量的具体值

   class对象内存包含:

    * isa指针

     * superClass指针

     * 类的成员变量的信息、类的属性信息

     * 类的协议信息、类型的对象方法

   meta-class对象内存包含:

     * isa指针

     * superClass指针

     * 类的方法信息






1. 对象的isa指针指向哪里

 * instance对象的isa指针指向class对象

 * class对象的isa指针指向meta-class对象

 * meta-class对象的isa指针指向基类的meta-class对象

2. class对象的superClass指针指向的是父类对象的class

* 如果没有找到父类对象的class,superClass为nil

3.meta-class对象的superClass指针指向的是父类对象的meta-class

* 基类的meta-class对象的superClass指针指向的是基类对象的class

4.instance对象调用方法的轨迹

* 根据isa找到class,如果class没有此方法,通过superclass指针找到父类对象的class

5. class对象调用方法的轨迹

* 根据isa找到meta-class对象,如果meta-class没有此方法,会通过superclass指针找到父类对象的meta-class,最后如果基类meta-class找不到此方法,会找到基类的class

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容