美文网首页
二十五、Runtime之(九)方法-objc_msgSend()

二十五、Runtime之(九)方法-objc_msgSend()

作者: yqc5521 | 来源:发表于2019-05-09 10:25 被阅读0次

    1.如果父类中都找不到该方法,就尝试动态解析,解析到就重新走retry方法


    方法解析

    2.动态解析,如果是类对象,就调用_class_resolveInstanceMethod,如果是元类对象,就调用_class_resolveClassMethod


    _class_resolve_method
    3._class_resolveInstanceMethod
    _class_resolveInstanceMethod

    4.retry


    retry
    5.动态方法解析的代码实现,动态添加方法后,又会重新走消息发送,从类对象里找该方法。
    动态实例方法解析的代码实现
    动态类方法解析的代码实现

    objc_msgSend执行流程02-动态方法解析的流程示意图

    objc_msgSend执行流程02-动态方法解析

    相关文章

      网友评论

          本文标题:二十五、Runtime之(九)方法-objc_msgSend()

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