2012-02-17 1 views
0

UIImageViewの画像を変更してアニメーションを実行しようとしています。私は5秒のアニメーションを作成するために24Kの約200のイメージが必要です。私はすべての画像をメモリにロードすることができますが(NSArrayに)、アニメーションを開始すると(UIImageViewのUIImageを切り替えると)約60枚の画像の後にメモリ警告が表示され、画像を表示し続けるとアプリケーションがクラッシュします。UIImageでメモリの問題が発生しました.2000画像をロードしました。

+0

ARCを使用していますか? – Jumhyn

+0

いくつかのコードは –

+0

2000(タイトル)または200(desc)の画像に役立ちますか? – justin

答えて

2

あなたのイメージファイルがディスク上の24 KBであるからといって、それが占有するメモリの量を意味するものではありません。

ピクセルあたり1バイトの480x960の画像がある場合、圧縮(jpegなど)のために小さいファイルサイズになる可能性がありますが、アプリ内のメモリにあるときは450KBになります。それに60を掛けて(メモリの警告を受け取るポイント)、それは約27MBです。

画像が大きい場合や色深度が大きい場合は、明らかにメモリを消費します。私はあなたが22Mbを打ったときにiOSがあなたにメモリ警告を与えることを一度読んだと思うが、それは他のもののためにあなたのアプリに割り当てられた他のメモリも含む。

あなたのアプリがイメージを配列に「ロードする」という意味では、実際にイメージをメモリにロードしたり、本当に必要になるまで展開したりするわけではありません。

イメージが使用するメモリの量を計算するには、ファイルサイズを調べず、代わりにイメージサイズから計算してください。