Runtime-消息转发

Objective-C的方法的调用都是一个发送消息的过程,底层调用C函数 objc_msgSend(receiver, selector, ...),第一个参数表示消息的接收者,第二个参数表示消息的名称,即方法


方法的调用过程

方法的调用流程 : 类->父类->...->cach(快速查找)->methodList(慢速查找)->消息转发

继承树查找如下图所示


继承树

消息转发流程


消息转发流程图

1.动态解析 --- 动态添加方法实现


动态解析

2.快速转发 --- 寻找一个备用的执行者


快速转发

3.慢速转发 --- 2 Steps 1:方法签名 2:消息转发


慢转发

4.doesNotRecognize


在这里就可以捕获一些异常,是程序不奔溃



以上为对象方法流程,类方法流程类似把“-”替换成“+”即可

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容