美文网首页
OC消息转发

OC消息转发

作者: so_bright | 来源:发表于2019-08-07 10:57 被阅读0次

消息转发

当向someObject发送某消息,但runtime system在当前类和父类中都找不到对应方法的实现时,runtime system并不会立即报错使程序崩溃,而是依次执行下列步骤:

image

分别简述一下流程:

1.动态方法解析:向当前类发送 resolveInstanceMethod: 信号,检查是否动态向该类添加了方法。(迷茫请搜索:@dynamic)
2.快速消息转发:检查该类是否实现了 forwardingTargetForSelector: 方法,若实现了则调用这个方法。若该方法返回值对象非nil或非self,则向该返回对象重新发送消息。
3.标准消息转发:runtime发送methodSignatureForSelector:消息获取Selector对应的方法签名。返回值非空则通过forwardInvocation:转发消息,返回值为空则向当前对象发送doesNotRecognizeSelector:消息,程序崩溃退出。

作者:ScaryMonsterLyn
链接:https://www.jianshu.com/p/c473b41c083d
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

相关文章

  • OC消息转发

    参考:轻松学习之 Objective-C消息转发 OC中调用方法就是向对象发送消息。比如 :[person run...

  • OC消息转发

    从 OC 转发机制说起 在 OC 中,方法调用也被称为发送消息,向一个的方法进行调用的时候,其实底层都会转换成 o...

  • OC消息转发

    消息转发 当向someObject发送某消息,但runtime system在当前类和父类中都找不到对应方法的实现...

  • OC 消息转发

    step1 调用+ (BOOL)resolveInstanceMethod:(SEL)selector 方法 此方...

  • OC消息转发

    转自: https://www.jianshu.com/p/649792014865 1 首先根据receiver...

  • oc消息转发

  • iOS消息转发机制

    OC消息转发 oc中的调用对象或者类不存在的方法,会执行一遍消息转发流程.消息转发主要包括4步 首先调用+ (BO...

  • Runtime——消息转发与运用

    本文主要是针对runtime消息转发进行整理,并举例关于消息转发的运用。 消息转发 1、消息调用 OC中发送消息是...

  • 关于Runtime 消息发送机制的延伸

    说到OC 不得不说一下OC 的消息转发机制;何为OC 的消息转发机制;其实就是这样的; Objc 在向一个对象发送...

  • oc消息转发机制

    一、消息转发机制 在OC中,调用一个对象的方法,实际上是给对象发了一条消息,在编译Objective-C函数调用的...

网友评论

      本文标题:OC消息转发

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