美文网首页
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消息机制流程解析

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

  • iOS 底层原理 - 消息转发

    在上一篇 iOS 底层原理 - 消息查找流程中,我们知道OC消息机制分为三个阶段,消息发送,动态解析和消息转发,如...

  • Runtime知识点整理1

    OC消息机制?消息转发机制流程?什么是Runtime?什么场景下使用? ==============巴拉巴拉......

  • OC中如何避开消息机制

    OC中的消息机制可概括为三步: 消息发送。 动态解析。 消息转发。 由于消息机制objc_msgSend()方法调...

  • OC消息机制解析

    消息机制是OC Runtime的一个重要机制 OC中的对象在调用方法时,如[myObj testMethod:ar...

  • runtime 消息机制简析

    runtime 消息机制消息机制可以简单分为三个方面:消息发送、动态方法解析、消息转发一.消息发送oc 中所有的方...

  • Runtime

    讲一下 OC 的消息机制 消息转发机制流程 什么是Runtime?平时项目中有用过么? OC的动态性是由Runti...

  • OC的消息机制总结

    OC的消息机制 流程总结:1.objc的消息机制,是通过objc_megSend 方法发送消息给 消息接受者,发...

  • iOS runtime

    runtime 是 oc 语音的基础首先runtime的核心机制是消息机制 也就是oc的消息机制首先oc的消息机制...

  • iOS 底层 - 名词解析

    目录 前言 名词解析 OC消息传递和转发机制 Runtime runtime动态创建类 Runloop Metho...

网友评论

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

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