2013-11-03 42 views
1

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

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

我在“泄漏”的情节发现泄漏吧,权当视图被加载时: What are these memory leaking objects, detected by xCode Instruments? 。但是,这些泄露的对象很小,所以我猜我的应用程序有其他问题。

当我的应用程序继续运行时,通常在iPad 2上运行10多轮,然后崩溃。我还没有太多关于乐器,所以我看“所有堆分配”。在第一轮谜题开始时,“#Overall”栏为〜70k,它在几轮谜题之间缓慢增长。当一个新的难题进入时,它会达到〜90k,然后一轮又一轮地达到〜200k,然后崩溃。

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

在搜索内存泄漏之后,我已经跟踪了一些内容,例如尽可能地将NSArray/NSDictionary或可变的NSArray/NSDictionary或可变的设置为零(尽管不是所有这些都是因为一些谜题之间的差异)。我还将UIImage imageNamed更改为[UIIMage alloc] initWithContentOfFile。

还有什么我应该看/检查是什么原因导致内存问题? TIA!

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

关于其他视图控制器。我确实有其他人(菜单,设置,应用程序商店费率等),我通过代码生成了所有这些信息。我的应用程序没有故事板或笔尖文件。当我测试崩溃时,我只需点击下一个拼图按钮,所有其他视图根本不会显示。所以,在崩溃之前,唯一显示的视图是主视图,只有几个按钮,几个子视图,一个动画图片(但只是引入的第一个难题)。如果有帮助,这是我的应用程序: http://itunes.apple.com/us/app/wordsect/id599455449?ls=1&mt=8

+2

如果不知道更多关于您的应用的信息,很难给您提供建议。你有多个视图控制器?你如何在他们之间移动?当你开始新一轮时,你是否用新的控制器开始“新鲜”?旧的解除分配了吗? – rdelmar

+0

也张贴一些有问题的代码可能会帮助兄弟。 –

+0

@rdelmar,我在原始文章中添加了几行,所以其他人可以看到它。谢谢。 –

回答

0

如果你试图用仪器调试应用程序 - 让僵尸检测模式:

  1. 的Xcode:产品 - >方案 - >编辑方案
  2. 选择调试方案的方案说明
  3. 在环境变量添加和检查
  4. 选择参数标签栏NSZombieEnabled变量

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