2011-09-15 6 views
0

アニメーションとしてPNG画像の配列を再生するUIAnimationビューがあります。約200フレームあり、合計サイズは約8 MBです。アニメーションはシミュレータとiPhone 4で正常に動作しますが、iPhone 3GSでテストすると、アニメーションのためにアプリがクラッシュします。UIImageViewアニメーションがクラッシュする

私はUIImage imageNamed:を使用してみましたが、私はimageWithDataを使用すると、より高速であるかもしれないことを読んで、私はこれを持っている:私の問題は

  NSString *imageName=[NSString stringWithFormat:@"fishBg_%i.png", i]; 
      NSString *fileLocation = [[NSBundle mainBundle] pathForResource:imageName ofType:nil]; 
      NSData *imageData = [NSData dataWithContentsOfFile:fileLocation]; 
      [animationArray addObject:[UIImage imageWithData:imageData]]; 

何をすることができますか?フレーム数を約100に減らすと、アニメーションが再生され、アプリがクラッシュすることはありません。しかし、フレームカウントを200にすると、アプリがクラッシュします。これを行うにはより良い方法は何ですか?アニメーションは透明な画像のPNGシーケンスですので、私はこれをビデオに変換して透過性を維持し、他の画像をその下に置くことができるかどうかはわかりません。

+0

あなたがクラッシュログを投稿することができますか? –

+0

私はもう3GSを持っていないので、オーガナイザでクラッシュログを見つけることができません。これはMOV経由で行うことができますか? – Snowman

+0

あなたはおそらくあまりにも多くのメモリを使用しており、そのために殺されています。画像のサイズはどれくらいありますか? –

答えて

2

私たちは(あなたがクラッシュしている理由ですと仮定して)ここに、できるだけ多くのメモリを節約する必要があるため、より多くの明示的にメモリを管理してみてください:私たちは何が起こっているかを見ることができるように

NSString *imageName=[[NSString alloc] initWithFormat:@"fishBg_%i.png", i]; 
NSString *fileLocation = [[NSBundle mainBundle] pathForResource:imageName ofType:nil]; 
[imageName release]; 
UIImage *theImage = [[UIImage alloc] initWithContentsOfFile:fileLocation]; 
[animationArray addObject:theImage]; 
[theImage release]; 
関連する問題