美文网首页
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 消息发送与转发详解

    iOS 消息发送与转发详解 iOS 消息发送与转发详解

  • iOS理解Objective-C中消息转发机制附Demo

    iOS理解Objective-C中消息转发机制附Demo iOS理解Objective-C中消息转发机制附Demo

  • runtime系列文章总结

    《iOS Runtime详解(消息机制,类元对象,缓存机制,消息转发)》《消息转发机制与Aspects源码解析》《...

  • iOS消息转发

    title: “iOS消息转发”date: 2016-03-22 13:48:38tags: 消息转发这块,我学习...

  • ios 消息转发

    ios在类中,没有定义的函数,要走消息转发流程。如果不走消息转发流程,程序会奔溃。消息转发流程分四步调用。 第一步...

  • iOS 消息转发

    有时候我们常常看到一个cash 信息,意思是这个对象不存在这个方法,你向这个对象发送消息就会crash。 我们除了...

  • iOS 消息转发

    消息转发是Objective-C运行时的一个重要特性,具体表现是当调用一个不存在的方法时,并不会立马Crash,R...

  • ios — 消息转发

    概念 首先我们需要简单了解下,什么是oc的消息以及oc中的消息转发。先看一段简单的代码 oc中调用方法就是向对象发...

  • iOS消息转发

    类对象在接收到无法解读的消息时,会出现unrecognized selector sent to instance...

  • iOS消息转发

    消息转发的前提 在对象收到无法解读的消息时会触发消息转发 消息转发的过程 I. resolveInstanceMe...

网友评论

      本文标题:iOS 消息转发

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