0

シミュレーターでは正常に動作するアニメーションがありますが、デバイスではクラッシュします。次のエラーが表示されます...

プログラム受信信号:「0」。デバッガーはシグナル 10 (SIGBUS) により終了しました

少し調べてみると、UIImages が解放されておらず、メモリ リークが発生していることがわかります。私はこれに慣れていないので、これが原因である可能性があるかどうか誰か教えてもらえますか? それを解決する方法も教えていただければ、それは素晴らしいことです。

画像は 480px x 480px で、それぞれ約 25kb です。私のコードは以下です...

NSArray *rainImages = [NSArray arrayWithObjects:
                           [UIImage imageNamed:@"rain-loop0001.png"],
                           [UIImage imageNamed:@"rain-loop0002.png"],
                           [UIImage imageNamed:@"rain-loop0003.png"],
                           [UIImage imageNamed:@"rain-loop0004.png"],
                           [UIImage imageNamed:@"rain-loop0005.png"],
                           [UIImage imageNamed:@"rain-loop0006.png"],  
                           //more looping images
                           [UIImage imageNamed:@"rain-loop0045.png"],
                           [UIImage imageNamed:@"rain-loop0046.png"],
                           [UIImage imageNamed:@"rain-loop0047.png"],
                           [UIImage imageNamed:@"rain-loop0048.png"],
                           [UIImage imageNamed:@"rain-loop0049.png"],
                           [UIImage imageNamed:@"rain-loop0050.png"],
                           nil];


    rainImage.animationImages = rainImages;
    rainImage.animationDuration = 4.15/2;
    rainImage.animationRepeatCount = 0;
    [rainImage startAnimating];
    [rainImage release];

ありがとう

4

2 に答える 2

0

[NSArray arrayWithObjects:] は、rainImage に格納している自動解放されたオブジェクトを返すため、クラッシュしていると確信しています。次に、一番下でもう一度 rainImage を解放しているため、解放しすぎています。

于 2010-06-07T20:30:17.123 に答える