美文网首页
oc消息机制流程解析

oc消息机制流程解析

作者: 异乡人_4f2a | 来源:发表于2020-02-25 22:42 被阅读0次

    oc中的方法调用其实就是转成了_objc_msgSend函数的调用,给方法调用者发送了一条消息。

    _objc_msgSend底层有三大阶段:消息发送、动态方法解析、消息转发

    1、消息发送

    以下为消息发送流程图:

    2、动态方法解析:

    调用+resolveInstanceMethod方法或者+resolveClassMethod方法

    动态添加方法流程图:

    例如为person对象动态添加test方法的实现

    以下Person类中,只有test方法的声明,没有test方法的实现,通过resolveInstanceMethod方法动态添加一个other方法用来实现,这样就会在外面调用test方法时,不会报错

    以下为动态添加对象方法的实现:

    以下为动态添加类方法的实现:

    3、消息转发

    消息转发流程图:

    例如调用person对象的test方法,最终通过消息转发给Cat类中的对象方法来实现:

    备注:以下是拿对象方法进行的消息转发试验,类方法的消息转发也一样,只是将-改成+即可

    相关文章

      网友评论

          本文标题:oc消息机制流程解析

          本文链接:https://www.haomeiwen.com/subject/qlrtchtx.html