使用“2x”按钮时在iPad上死亡的iPhone OpenGL ES应用程序

问题描述:

嘿,我在这里遇到了一个奇怪的问题。使用“2x”按钮时在iPad上死亡的iPhone OpenGL ES应用程序

我有一个仅支持iPhone的OpenGL ES应用程序,可以在支持的所有iPhone和iPod touch型号上正常运行。

在iPad上运行时,它按预期在iPhone大小的窗口上运行,按下“2x”按钮将窗口放大到预期的两倍,并且应用程序继续正常运行。

但是,如果用户快速点击“2x”按钮3或4次,该应用程序将被消息与Program received signal: "0"消息(据我所知,这意味着操作系统杀死我的应用程序使用太多的内存,是对吧?)

我真的不明白的是,当iPad将窗口向上和向下缩放时,我的应用程序中可能会使用更多内存?据我所知,甚至没有任何方法可以让我的应用程序知道iPad是否以及何时执行此操作。我不知道我使用OpenGL ES的事实是否与之相关,但是这个问题在我的任何Cocoa Touch应用程序中都没有发生 - 尽管它在其他两个OpenGL ES应用程序中也没有发生我有。这个应用程序使用的内存比其他任何内存都要多。

任何人曾经或甚至听说过这个问题?谷歌搜索没有给我什么。

刚刚添加该所以有某种这里的答案...

我从来没有想通了,这到底是怎么回事使用2x按钮。

我修复它的方式是尽可能多地优化内存使用,懒惰地加载所有我可以卸载的东西,并在不使用时再次卸载。
奇怪的是,它在任何受支持的iPhone或iPod touch型号(即使是较旧的型号)上运行时都从不抱怨内存,但它只在反复按下2x按钮时才在iPad上死亡......我想这总是对我来说会是个谜。

由于没有人发布过直接答案(您的情况可能有点模糊),我建议如何前进并收集更多关于可能导致问题的信息。

检查了仪器在Xcode它可以识别内存泄漏: Instruments User Guide

或用于甚至友好的介绍,下面是解决性能问题,包括内存泄漏(以及如何找到它们)的视频。 iOS Performance Optimization Video

+0

嘿格雷格,谢谢你的回答。我已经使用仪器实用程序中的泄漏,分配和内存监视器仪器检查了内存使用情况。在任何情况下都没有检测到内存泄漏。除非用户在iPad上快速缩放窗口,否则应用程序将运行良好并且不会在任何设备上发出内存警告。我不知道缩放动画如何影响我的应用程序。 – filipe 2011-05-12 19:13:10

+0

祝你好运,我只是在学习iOS平台,所以我可以提供所有的帮助! :) 其中一个测试应用程序,我开始崩溃的负载和没有我能看到的是造成它。我做了一个新项目,并复制了崩溃的代码 - 问题没有了。也许试试? – 2011-05-13 13:03:32

+0

@filipe - 在您点击2X放大按钮之前和之后,内存监视器会报告什么?应用程序的绝对内存大小是否增长?另外,如果在点击放大按钮之前和之后在ObjectAlloc中拍摄一个堆,然后在再次点击按钮之后拍摄另一个堆,是否有任何内存元素显示为在每次按下该按钮之后添加的内存元素? – 2011-05-13 18:13:46