本文共 919 字,大约阅读时间需要 3 分钟。
在非源码工程中使用本地方法分析消息转发调用顺序,可以通过以下步骤实现
在需要分析消息转发的类中添加外部方法支持
extern void instrumentObjcMessageSends(BOOL);
在目标类中调用分析工具
instrumentObjcMessageSends(YES); // 启用分析[HSPerson walking]; // 被分析的操作instrumentObjcMessageSends(NO); // 停止分析
运行项目后,分析结果将保存在 /private/tmp/ 文件夹中,文件名以 msgSends- 开头
打开生成的日志文件,查看详细的消息转发调用序列
+ HSPerson NSObject resolveClassMethod:+ HSPerson NSObject resolveClassMethod:+ NSObject NSObject resolveInstanceMethod:+ NSObject NSObject resolveInstanceMethod:+ HSPerson HSPerson forwardingTargetForSelector:+ HSPerson HSPerson forwardingTargetForSelector:- OS_xpc_serializer OS_xpc_object dealloc- OS_object NSObject dealloc- __NSCFConstantString __NSCFConstantString release- NSMethodSignature NSMethodSignature methodReturnType- NSMethodSignature NSMethodSignature _argInfo
通过上述方法,可以全面追踪和分析 Objective-C 消息转发链中的各个环节,帮助开发者深入理解对象之间的交互逻辑
转载地址:http://xhqg.baihongyu.com/