Runtime

Runtime就是将面向对象开发转换为面向过程

(一)instance,classObject,metaClass

对象的isa指针指向自己的元类(metaClass);对象的superClass指向自己的父类;

(二)消息发送

1.根据实例对象的isa指针找到类对象。

2.类对象的消息解析:

      查看类对象的cache是否存在该方法。如果存在,直接调用;如果不存在,进入下一步。

      查看类对象class_rw_t是否有该方法。如果存在,调用并添加到cache;如果不存在,进入下一步。

      查看父类的cache是否存在该方法。如果存在,调用并添加到消息接收者的cache;如果不存在,进入下一步。

      查看父类class_rw_t是否有该方法。如果存在,调用并添加到消息接收者cache;如果不存在,进入下一步。

以此类推,直到找到根类。

如果在3、4及其它父类中找到该方法,会将其添加到消息接收者的cache,即 receiver 的cache。

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

推荐阅读更多精彩内容