gpt4 book ai didi

Objective-c 静态分析工具

转载 作者:行者123 更新时间:2023-12-03 15:39:16 27 4
gpt4 key购买 nike

我的崩溃报告服务显示了 iOS 应用程序的大量神秘崩溃。由于一些原因,我怀疑代码试图在没有特定选择器的对象上执行选择器。

如何静态分析代码以找到错误的选择器?

我正在 OS X 10.8 上使用 Xcode 4.6 编写 Objective-C 代码。我可以使用一个工具,它不会调用诸如调用 performSelector 之类的东西,其中选择器是从字符串等构建的。我认为一个基本的工具会起作用。

最佳答案

从 Xcode 的“产品”菜单中选择“分析”。或者按 shift+command+B。

它对于识别 MRC 中的常规内存管理内容非常宝贵。但它对 ARC 程序仍然有用。

您可能还想尝试设置 exception breakpoint对于所有异常(exception)。

我还建议您参阅 Debug and Tune Your App Xcode 用户指南的部分。或 Ray Wenderlich 的 My App Crashed, Now What?系列。

顺便说一句,虽然分析器有帮助,但我认为它不会找到不正确的选择器。您可能想分享您如何使用选择器,因为您正在使用 performSelector ,通常有更好的模式。有时您必须使用它,但通常还有其他更健壮的模式。或者,如果您绝对需要使用选择器,请添加运行时 respondsToSelector检查。例如:

NSAssert([object respondsToSelector:@selector(someMethod:)], @"%@ does not respond to selector someMethod:", object);

或者,如果选择器响应它,则有条件地执行选择器(这是您执行可能以特定 iOS 版本为条件的方法的方式):
if ([object respondsToSelector:@selector(someMethod:)])
[object performSelector:@selector(someMethod:)];

关于Objective-c 静态分析工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18256411/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com