应用程序占用太多内存直到崩溃! (苹果手机)

时间:2012-11-02 20:26:12

标签: memory xcode4 uiviewcontroller uiimageview xcode-instruments

我在开发方面相当初学,我正在制作一个拥有大约150个ViewControllers的应用程序!每个人都有一个UIImageView。

我一直在做一些测试,在iPhone上使用该应用程序一段时间后,当我继续查看ViewControllers时崩溃了。

我一直在用仪器分析这个问题,而且我没有泄漏,但是我的内存分配不断上升,当我在iPhone上查看ViewControllers时,使用情况一直持续到崩溃。

我认为很明显它崩溃了,因为应用程序只是占用了太多内存。

所以任何人都可以解释如何释放viewControllers以释放内存,这样就不会崩溃

提前致谢!

1 个答案:

答案 0 :(得分:0)

您需要问自己的第一个问题是为什么需要150个ViewControllers。 你想呈现150张不同的图片吗? 如果是这样,那么多个ViewControllers就不行了。您可能需要使用包含图像的UIScrollView(当然不是所有图像。使用延迟加载)。

在您的情况下可能发生的是每次需要显示新的ViewController时调用“pushViewController”,但这不会释放以前的ViewController。它只是堆叠所有以前的ViewControllers并保留它们的指针。

你看,导航控制器的工作方式是它们有一组视图控制器。每次呈现新的视图控制器时,它都会添加到数组的末尾。当您单击“返回”或调用“popViewController”时,数组的最后一项将被删除(然后从内存中自动释放)。

请参阅thisthis问题,了解如何创建UIScrollView以滚动图片。