1

我有一个 iPhone 应用程序,似乎有内存泄漏问题。这是一款益智游戏,经过几道谜题后,应用程序在设备上崩溃。

我现在正在尝试使用 xcode Instruments 来检测发生了什么。第一次使用仪器。

我注意到“泄漏”图中的泄漏条,就在加载视图的时间: xCode Instruments 检测到这些内存泄漏对象是什么? . 但是这些泄漏的对象很小,所以我猜我的应用程序还有其他问题。

当我的应用程序继续运行时,通常在 iPad 2 上运行 10 多轮,然后它就会崩溃。我对 Instruments 还不太了解,所以我看“All Heap Allocations”。在第一轮拼图开始时,“#Overall”列约为 70k,它在每轮拼图之间缓慢增长。当一个新的回合谜题出现时,它会达到〜90k,然后一轮又一次达到〜200k,然后崩溃。

在崩溃之前,在日志控制台中我看到内存警告和“连接中断”。

在搜索内存泄漏后,我跟踪了一些事情,例如将 NSArray/NSDictionary 或 mutable 设置为 nil,尽可能地(尽管不是全部,因为有些在谜题之间)。我还将 UIImage imageNamed 更改为 [UIIMage alloc] initWithContentOfFile。

我还应该查看/检查什么导致内存问题?蒂亚!

编辑:我希望我可以发布一些可能是嫌疑人的代码,但我真的不知道该发布什么部分。我应该在课程开发中通过 Instruments 进行检查,以便知道导致问题的原因。

关于其他视图控制器。我确实有其他(菜单、设置、应用商店价格等),我通过代码生成了所有这些。我的应用没有情节提要或 nib 文件。当我测试崩溃时,我只需单击 Next Puzzle 按钮,因此所有其他视图都不会显示。所以,在崩溃之前,唯一显示的视图是主视图,有几个按钮,几个子视图,一个动画图片(但只有第一个谜题作为介绍)。如果有帮助,这是我的应用程序:http: //itunes.apple.com/us/app/wordsect/id599455449 ?ls=1&mt=8

4

1 回答 1

0

如果您尝试使用 Instruments 调试应用程序 - 启用僵尸检测模式:

  1. Xcode:产品->方案->编辑方案
  2. 选择调试方案
  3. 在方案描述上选择 Arguments 选项卡栏
  4. 在环境变量中添加并检查 NSZombieEnabled 变量

然后,当您在 Instruments 控制下启动应用程序时,当您的应用程序崩溃时,您将获得实例的名称。

于 2013-11-04T06:19:08.340 回答