我有一个iPhone应用程序,对于某些用户来说,有时表现得好像主要的UIView已从视图层次结构中删除。它总是与游戏中的重大事件同时发生。其他核心图形绘制的UIViews在z顺序上方仍然存在,但主要的(OpenGL视图)似乎已经消失,留下背景(纯色)。
应用程序不会崩溃(它会一直运行,没有视图),这似乎对受影响的用户非常一致。不幸的是我无法重现它。
我怀疑内存问题 - 这是最简单的解释 - 但根据我的阅读,看起来像didReceiveMemoryWarning只能释放不可见的视图,除此之外我的应用程序的内存使用量非常小。此外,“重要事件”仅导致OpenGL绘图和SoundEngine调用 - 没有视图操作。
之前有人见过这样的事吗?
答案 0 :(得分:0)
是的,事实上,我的一个应用程序偶尔会出现这个问题,它似乎与内存有关。
通过调试或分析程序流程,我没有成功跟踪它。我已经确认有问题的视图已被破坏,而不仅仅是以某种方式隐藏。
这种情况很少发生,我没有深入研究,但我确实认为这是由操作系统中某些东西造成的,
答案 1 :(得分:0)
如果与内存相关,您可以在模拟器中轻松测试低内存以调试此问题。
答案 2 :(得分:0)
问题最终是在应用程序的计时器线程中抛出了一个未被捕获的NSException(来自第三方库),它杀死了计时器线程,但没有杀死应用程序的其余部分。好消息是,在这种情况下会生成崩溃报告,如果您知道要查找/请求它们,可以更容易地跟踪它。
答案 3 :(得分:-1)
正如SDK文档中所明确的那样,当您的应用程序内存不足时,可以收集未使用的视图。当它再次需要时,它会被重新创建。这是为了节省宝贵的iPhone资源。最好的办法是保留视图,使其无法释放。