0

我是开发的初学者,我正在制作一个有大约 150 个 ViewControllers 的应用程序!每个都有一个 UIImageView。

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

我一直在仪器中对此进行分析,并且没有泄漏,但是我的内存分配不断增加,当我继续在 iPhone 上查看 ViewControllers 时,使用量只会不断增加直到崩溃。

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

那么任何人都可以解释如何释放视图控制器以释放内存,这样就不会发生崩溃

提前致谢 !

4

1 回答 1

0

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

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

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

请参阅问题和问题以了解如何创建 UIScrollView 以滚动图像。

于 2012-11-02T22:10:08.123 回答