美文网首页
iOS 消息转发

iOS 消息转发

作者: 你飞跃俊杰 | 来源:发表于2021-10-22 21:18 被阅读0次

    消息转发机制

    消息转发.png

    1.动态方法解析

    首先是征询接收者所属的类,看其是否能动态添加调用的方法,来处理当前这个未知的选择子;

    2.快速消息转发

    寻找是否在其他对象内有该方法实现,并将该消息转发给这个对象.如果目标对象实现了该方法,Runtime这时就会调用这个方法,给你把这个消息转发给其他对象的机会.只要这个方法返回的不是nil和self,整个消息发送的过程就会被重启,当然返回的对象会变成return的对象,否则就会继续nurmal fowarding

    3.标准消息转发

    获取方法签名
    如果失败就抛异常,如果成功了,并获取参数和返回值,就会创建invocation 对象,并将forworadinvocation消息转发给该对象

    消息转发源码

    13.0后检查参数开关,关不了


    image.png

    发送消息
    强转一下


    image.png

    给父类发消息


    image.png

    汇编发送消息


    image.png

    符号断点


    image.png image.png

    汇编代码


    image.png

    底层用汇编:调用频繁,汇编性能高,safe

    查找消息转发的方法

    image.png image.png

    手机,M1:arm64,模拟器:i386,x84_64 电脑

    image.png image.png image.png image.png

    找到了方法

    image.png

    这里也有


    image.png

    这样也可以找


    image.png

    慢速查找


    image.png

    相关文章

      网友评论

          本文标题:iOS 消息转发

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