iPhone:由于没有内存,过度释放或其他原因,我的应用程序崩溃了吗?

时间:2011-07-28 23:28:22

标签: iphone objective-c

我正在使用我的应用程序,当我在一天开始使用它时,一切正常。然而,当我逐渐测试它并反复重复某些任务时,随着时间的推移,我的应用程序崩溃了。具体来说,视图开始在我当前的屏幕中消失,当我回去时,视图缺少标签,图像等。然后突然,它只是黑色,并没有真正崩溃,但只是保持黑色,并且功能失调。

我检查了崩溃日志,这非常神秘。我只是看到“未能及时恢复”,日志中的其他内容并没有给我很多有意义的信息。

我知道任何事情都可能导致这种情况,但可能是什么造成的? 是吗:

1)使用太多内存,可能在viewDidUnload中卸载了视图? 2)由于物体过度释放? 3)访问无效指针或什么?

2 个答案:

答案 0 :(得分:0)

您可能逐渐在内存中越来越低,迫使这些视图开始卸载。 iPhone应用程序旨在通过首先转储未使用的视图来尝试以这种方式生存。一旦事情达到某一点,该应用程序将基本上无法使用。

我会使用泄漏仪器检查您的应用程序,并确保您正确地发布内容。

答案 1 :(得分:0)

“无法按时恢复”也可能是由于建立了越来越大的数据结构,可能不会占用太多存储空间,但是在应用程序出现问题时需要花费很长时间来遍历。最明显的是导航控制器,其中堆叠了大量屏幕,但可能还有其他特定于应用程序的数据结构。

我们有一个应用程序执行此操作,因为它需要“走”一个大的(几乎是圆形的)数据结构,以在viewWillAppear中构建一个屏幕。

但结合消失的数据,听起来你有一个存储问题。或者也许是两个不同的问题。