Runtime objc4-779.1 一图看懂iOS Runtime消息转发
Posted Jsen_Wang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Runtime objc4-779.1 一图看懂iOS Runtime消息转发相关的知识,希望对你有一定的参考价值。
消息发送流程图
设定消息接受者为receiver
图是用markdown画的,适配可能有点问题,浏览器页面放大看好一些
这个过程很多博文都介绍过,在此不再累赘.我们只提炼出里边需要我们注意的内容即可.
总结一下
- 1,方法的调用都是通过
objc_msgSend(receiver,SEL...)
做到的,OC的方法中有两个默认值,self
,_cmd
- 2,方法在类中查找的过程中会优先去
cache
中,然后再去method_list
查找,如果都没有,沿着继承链,递归查找 - 3,如果在继承链上没有找到,那么就进入消息转发过程
- 4,如果找到了,方法会被记录到cache中,方便下次查找
- 5,其实在查找方法的过程中,Runtime还做了各种异常处理,比如class不存在,class没有初始化等等
以上是关于Runtime objc4-779.1 一图看懂iOS Runtime消息转发的主要内容,如果未能解决你的问题,请参考以下文章
Runtime objc4-779.1 通过runtime源码对OC对象销毁过程解析
Runtime objc4-779.1 App启动过程中Runtime都干了什么?
Runtime objc4-779.1 通过runtime源码对OC对象初始化过程解析
Runtime objc4-779.1 App启动过程中Runtime都干了什么?