Objective-C的方法的调用都是一个发送消息的过程,底层调用C函数 objc_msgSend(receiver, selector, ...),第一个参数表示消息的接收者,第二个参数表示消息的名称,即方法
方法的调用过程
方法的调用流程 : 类->父类->...->cach(快速查找)->methodList(慢速查找)->消息转发
继承树查找如下图所示
继承树
消息转发流程
消息转发流程图
1.动态解析 --- 动态添加方法实现
动态解析
2.快速转发 --- 寻找一个备用的执行者
快速转发
3.慢速转发 --- 2 Steps 1:方法签名 2:消息转发
慢转发
4.doesNotRecognize
在这里就可以捕获一些异常,是程序不奔溃
以上为对象方法流程,类方法流程类似把“-”替换成“+”即可