iOS运行时消息解析流程

iOS消息解析流程.jpg

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

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

推荐阅读更多精彩内容