过程
1、调用resolveInstanceMethod:方法(或resolveClassMethod:)允许用户在此时为该类动态添加实现。如果这个方法有实现,那么重新开始objc_msgSend流程(这个方法中可以调用class_addMethod进行动态方法添加)
2、没有实现步骤一的动态添加方法的话,调用forwardingTargetForSelector:方法,尝试找到一个能响应该消息的对象,如果获取到,则直接把消息转发给它,否则执行步骤3
3、调用methodSignatureSelector:方法,尝试获得一个方法签名,如果获取到了创建一个Invocation传给forwardInvocation:,否则调用doesNotRecongnizeSelector抛异常。
4、调用forwardInvocation方法,获取传入的invocation在这里处理
5、上面都没转发成功的话,则调用doesNotRecongnizeSelector抛异常。