加载2000个图像时UIImage的内存问题

时间:2012-02-17 08:11:09

标签: iphone

我正在尝试通过更改UIImageView的图像来运行动画。我需要大约200张24K的图像来创建一个5秒的动画。我能够将所有图像加载到内存中(进入NSArray),但是当我启动动画(切换UIImageView的UIImage)时 - 大约60张图像后我收到内存警告,如果我继续显示图像,应用程序崩溃。

1 个答案:

答案 0 :(得分:2)

仅仅因为您的图像文件在磁盘上是24Kb,并不意味着它们将占用的内存量。

如果你的图像是480x960,每像素1个字节,那么由于压缩(例如jpeg)可能只是一个很小的文件大小,但当它在你的应用程序的内存中时,它将是450KB。将它乘以60(获得内存警告的点),您将看到大约27MB。

如果您的图像较大或颜色深度较大,那么显然它们会消耗更多内存。我想我读过一次,当你达到22Mb时,iOS会给你一个内存警告,但是其中包括分配给你的应用程序的其他内存。

只是因为你的应用程序将图像“加载”到数组中,并不意味着它实际上将它加载到内存中,或者扩展它直到真正需要它。

因此,要计算图像将使用多少内存,请不要查看文件大小,而是从图像维度中进行处理。