![](https://img.haomeiwen.com/i931502/09027ea659ec4a72.jpg)
第一步:
动态方法解析,向当前类发送
resolveInstanceMethod:
信号,检查是否有动态的向当前类添加此方法。第二步:
快速消息转发,检查被调用的类是否实现
forwardingTargetForSelector:
方法,如果实现了,则调用此方法,如果返回了其他类对象,则重新发消息执行其他类的此方法;如果该方法返回nil或者非self,则执行第三步。第三步:
标准消息转发,需要重写
methodSignatureForSelector:
和 forwardInvocation:
两个方法,methodSignatureForSelector:
方法必须返回不为nil的methodSignature
,而 forwardInvocation:
方法将消息转发给了真正实现了该消息的人。
网友评论