1

我正在 iPad 上开发一个只有动画的应用程序。我正在使用大约 400 张 JPEG 图像来制作动画。大小对应于 7MB。但是动画在 50 幅图像后停止并且应用程序崩溃。我在 NIB 中使用 UIImageView 作为 IBOutlet 并使用 NSTimer 更改代码中的图像。应用程序崩溃并显示消息已收到内存警告。我使用 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

如果您无效或为零,则您的计时器不会无效或为零,那么您不会收到内存警告。

动画定时器=无;[动画计时器无效];

于 2012-07-05T11:37:15.200 回答