美文网首页
iOS 消息发送机制(前篇)

iOS 消息发送机制(前篇)

作者: 熊啊熊啊熊 | 来源:发表于2019-08-21 14:24 被阅读0次

前言

在OC中的方法调用,其实都是转换为objc_msgSend()函数的调用

objc_msgSend的执行流程可以分为3个大阶段:

首先去官网下载objc源码 下载地址点我跳转
下载最新,数值最大的那个,我下载的是

15662923141021.jpg

然后我们就可以打开代码源码查看了

第一步:我们全局搜索objc_msgSend这个函数,在 objc-msg-arm64.s 我们就可以发现入口

15662925776689.jpg

ENTRY表示执行,主要看CacheLookup(缓存中查找),通过搜索可以看到CacheLookup是一个定义的宏

15662931296990.jpg

同上我们搜索CheckMiss也是一个宏

15662931870144.jpg

里面调用__objc_msgSend_uncached
全局搜索__objc_msgSend_uncached发现这里有一个方法表单查找

![15662934694627.jpg](https://img.haomeiwen.com/i2015167/28a1305193a544af.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

搜索MethodTableLookup发现里面会调用一个c语言函数

15662934694627.jpg

全局搜索_class_lookupMethodAndLoadCache3会在一个objc-runtime-new.mm里面找到这个函数的实现

15662935857373.jpg

最后重点都是在这个函数函数里面.

参考:Objective-C 消息发送与转发机制原理

下一篇消息发送

热爱生活,记录生活!

相关文章

  • iOS 消息发送机制(前篇)

    前言 在OC中的方法调用,其实都是转换为objc_msgSend()函数的调用 objc_msgSend的执行流程...

  • iOS面试题总结(二)

    iOS面试题(二) 消息发送和转发机制,SEL和IMP 消息发送转载自黄龙辉消息发送和消息转发机制 在Object...

  • IOS消息传递机制

    ios的消息传递机制分为三个阶段:消息发送阶段,动态解析阶段,消息转发阶段。 消息发送阶段: 当ios的对象调用方...

  • iOS 底层原理 - 消息转发

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

  • iOS看源码:消息转发

    消息的发送 前篇iOS看源码:消息发送01[https://www.jianshu.com/p/e0f30ec3d...

  • iOS开发 — 初识消息机制

    消息机制原理 iOS进程是一个活的循环(runtime), OC中调用方法的实质就是发送消息, 而消息机制的本质就...

  • iOS 消息发送、转发机制

    消息直到运行时才会与方法实现进行绑定(在OC中方法调用是一个消息发送的过程) OC中调用方法: [xiaoming...

  • iOS开发--广播通知

    iOS 提供了一种 "同步的" 消息通知机制,观察者只要向消息中心注册, 即可接受其他对象发送来的消息,消息发送者...

  • iOS 消息发送与转发详解

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

  • 08.Objective-C 消息机制

    问题 消息机制的三个阶段 1.消息机制发送消息阶段-消息发送2.消息机制动态方法解析阶段 -动态解析3.消息机制消...

网友评论

      本文标题:iOS 消息发送机制(前篇)

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