2012-02-17 54 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會給你一條內存警告,但也包括分配給你的應用程序的其他內存的其他內存。

僅僅因爲你的應用程序將圖像加載到數組中,並不意味着它實際上將它加載到內存中,或者擴展它直到真正需要它。

因此,要計算您的圖像將使用多少內存,請不要查看文件大小,而是從圖像尺寸中解決問題。