我的iphone应用程序内存出现问题,最终崩溃——使用了大量图像

我的iphone应用程序内存出现问题,最终崩溃——使用了大量图像,iphone,memory,memory-management,Iphone,Memory,Memory Management,我是编程新手(几个月前学会了如何编写应用程序),最近我写了一个应用程序,每次大约5分钟后都会崩溃,并且有几个“收到内存警告”。级别=1'警告。在使用仪器进行测试时,我无法检测到任何泄漏,并且我相当有信心我正确地释放了对象,因此我怀疑内存问题源自我使用的大量png图像(大约80)。我尝试过将-imageNamed方法更改为-imageWithContentsOfFile,但没有看到真正的改进。如果有人能给我一些建议,我会非常感激的,因为我完全被卡住了 内存不足并不一定意味着内存泄漏。这可能意味着你

我是编程新手(几个月前学会了如何编写应用程序),最近我写了一个应用程序,每次大约5分钟后都会崩溃,并且有几个“收到内存警告”。级别=1'警告。在使用仪器进行测试时,我无法检测到任何泄漏,并且我相当有信心我正确地释放了对象,因此我怀疑内存问题源自我使用的大量png图像(大约80)。我尝试过将-imageNamed方法更改为-imageWithContentsOfFile,但没有看到真正的改进。如果有人能给我一些建议,我会非常感激的,因为我完全被卡住了

内存不足并不一定意味着内存泄漏。这可能意味着你一次要求的内存太多了。在您的例子中,您可能试图创建太多同时存在的
UIImage
对象。如果看不到更多的代码,除了尝试找到一种同时使用更少图像的方法外,没有什么可说的。

假设使用
imageNamed
加载的
UIImage
s在可能的情况下卸载其内容,如果它们收到内存警告。这将只剩下一个非常小的空
UIImage
容器。所以我怀疑你还有其他问题


检查程序中的任何循环,确保它不会以某种方式泄漏。

还请记住,磁盘上的PNG比内存中相应的映像小得多。如果您的PNG很大,可能只是占用了太多内存。也许您可以延迟加载图像以缩小您的占地面积。

谢谢您的回复!我试着减少我的图片使用量,我真的不认为我可以在不降低应用程序质量的情况下再进行剪切。然而,我仍然收到内存警告,然后最终崩溃。让我困惑的是,我直到游戏的第15关才崩溃,而且在不同关卡之间也没有引入新的图像。我仍然没有发现任何泄漏(我使用了仪器和NSzombiesenable),所以我认为这不是问题所在。可能是我没有正确地使用视图控制器还是什么?我被难住了。。。。再次感谢您的帮助。
NSZombies
的目的不是因为内存实际上没有被返回,所以僵尸可以抱怨它是在官方解除锁定后被调用的吗?它将解释内存警告。解决这类问题的方法是将一些代码放入循环中,例如,对同一级别执行100次,然后查看内存占用是否随着每次执行同一级别的操作而增加。