2012-02-17 39 views
0

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

+0

您使用ARC吗? – Jumhyn 2012-02-17 08:13:08

+0

一些代码将帮助 – 2012-02-17 08:16:24

+0

2000(标题)或200(desc)图像? – justin 2012-02-17 08:40:21

回答

2

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

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

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

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

因此,要计算您的图像将使用多少内存,请不要查看文件大小,而是从图像尺寸中解决问题。