iOS运行时消息解析流程

iOS消息解析流程.jpg

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

你可能感兴趣的:(iOS运行时消息解析流程)