2009-02-12 57 views
0

我有一个iPhone应用程序,对于某些用户,有时表现得好像主UIView已从视图层次结构中删除。它总是与游戏中的重大事件重合。其他核心图形绘制的UIViews在z顺序上方依然存在,但主要的(OpenGL视图)似乎消失了,只剩下背景(纯色)。什么会导致UIView从层次结构中被任意删除?

该应用程序不会崩溃(它保持运行,没有视图),并且这似乎对受影响的用户非常一致地发生。不幸的是,我无法重现它。

我怀疑是内存问题 - 这将是最简单的解释 - 但根据我的阅读,它看起来像didReceiveMemoryWarning只会释放不可见的视图,除此之外,我的应用程序的内存使用量非常小。此外,“重大事件”仅导致OpenGL绘图和SoundEngine调用 - 无视图操作。

有人在那里看到过这样的事吗?

回答

0

这个问题最终成为一个未被捕获的NSException(来自第三方库)抛出应用程序的计时器线程,它杀死了计时器线程,但没有应用程序的其余部分。好消息是,在这种情况下会生成崩溃报告,如果您知道查看/请求它们,可以更轻松地对其进行跟踪。

0

是的,事实上,我的一个应用程序偶尔会出现这个问题,它似乎与内存有关。

我无法通过调试或分析程序流来追踪它。我已经证实,有问题的观点被摧毁,而不是以某种方式隐藏。

它发生如此罕见,以至我还没看着它深深的,但是我不认为这是在以某种方式OS的东西造成的,

+0

请查看下面我自己提供的答案;它可能也会帮助你的应用程序。 – 2009-02-19 15:05:52

-1

正如SDK文档中明确,当你的应用程序内存不足,可以收集未使用的视图。当它再次需要时,它被重新创建。这是为了节约宝贵的iPhone资源。您最好的选择是保留该视图,以免它被释放。

+0

如果有问题的视图可见,这是一个很好的选择,它是“正在使用” – 2009-02-12 01:58:32

+0

八月 - 感谢您的帮助,但请仔细阅读我的问题。正如Andrew所指出的那样,这个观点正在被使用。 – 2009-02-12 02:54:18

0

如果与内存相关,则可以在模拟器中轻松测试低内存以调试此问题。

相关问题