自动释放池中的内存未释放,直到内存警告或应用程序进入后台

时间:2013-01-16 01:04:08

标签: iphone ios5 memory-management

我在我正在处理的应用中有一个关于自动释放池和内存释放的问题。如果有人需要查看我可以发布的代码。

首先,我在这个应用程序中使用ARC,现在基本上我在启动时分配了一点点内存(介绍动画的图像),并且它们占用的内存不是&#39 ; t似乎正确解除分配,直到我因某种原因收到内存警告,或者我进入后台并重新进入应用程序的前台。

我一直在监控代码和工具中分配的内存量,因此看起来这个问题并非一些误报。我知道一个事实我正确处理了图像内存,因为我清楚地将UIImageView.animationImages属性设置为nil,并将UIImageView设置为nil并在动画后从内存中释放它的父视图控制器已经完成了。基本上,它所做的一切都设置为nil或者removeFromSuperview,以确保ARC知道它应该被释放。

有什么方法可以清除这个自动释放的内存池,类似于输入应用程序背景或收到内存警告的结果?

1 个答案:

答案 0 :(得分:0)

想通了,我为我的介绍动画分配的UIImages是通过imageNamed:方法缓存的,因此即使在它们被自动释放一段时间后也会被保留。

要解决此问题,我使用的是imageWithContentsOfFile:方法,它不会缓存图像。