1

アニメーションのみの iPad でアプリを開発しています。約400枚のJPEG画像を使用してアニメーションを作成しています。サイズは7MB相当。しかし、50 枚の画像をアニメーション化した後、アニメーションが停止し、アプリがクラッシュします。NIB で UIImageView を IBOutlet として使用し、NSTimer を使用してコード内の画像を変更しています。アプリがクラッシュし、Received memory warning というメッセージが表示されます。Instrumentsツールを使用してチェックしましたが、漏れは見つかりませんでした。

任意の提案をいただければ幸いです。

コード

- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[self callTimer];
}

-(void) callTimer
{
tempView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 768, 1024)];
[self.view addSubview:tempView];
animationTimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self     selector:@selector(animateCharacter) userInfo:nil repeats:YES];
}

-(void) animateCharacter
{
imageNumber++;
if(imageNumber <= 400)
{
    tempView.image = [UIImage imageNamed:[NSString stringWithFormat:@"body%d.jpg",imageNumber]];

}
else
{
    //tempView.image = [UIImage imageNamed:[NSString stringWithFormat:@"pose.png",imageNumber]];
    imageNumber = 0;
    tempImageNumber = 0;
    [tempView removeFromSuperview];
    [tempView release];
    tempView = nil;
    [animationTimer invalidate];
    animationTimer = nil;
}

}
4

2 に答える 2

2

特定の期間の画像を変更するために複数のタイマーを使用していますか?

私の経験では、タイマーを無効にして時間の値をゼロにするためにリアルタイムにする必要があるため、問題が解決する可能性があります。

また、ここにコードを追加して、問題をより特定できるように、より多くの情報を提供してください。

ありがとう。

于 2012-07-05T06:38:24.660 に答える
0

タイマーが無効または nil ではない場合、タイマーは無効または nil ではなく、メモリ警告は表示されません。

animationTimer=nil; [animationTimer 無効化];

于 2012-07-05T11:37:15.200 に答える