Runtime

2023-02-28  本文已影响0人  kuso思密达

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。

上一篇 下一篇

猜你喜欢

热点阅读