在iPad上收到内存警告

时间:2012-07-05 06:31:52

标签: iphone ios memory warnings

我正在iPad上开发一款只有动画的应用程序。我使用大约400张JPEG图像制作动画。大小相当于7MB。但动画停止,应用程序在动画50张图像后崩溃。我在NIB中使用UIImageView作为IBOutlet并使用NSTimer在代码中更改图像。应用程序崩溃,显示消息已收到内存警告。我已经使用仪器工具检查过,发现没有泄漏。

任何建议都表示赞赏。

代码

- (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;
}

}

2 个答案:

答案 0 :(得分:2)

您是否使用多个计时器来更改特定持续时间的图像?

根据我的经验,您需要实时使计时器无效并且没有时间值,以便它可以解决您的问题。

还可以在此处提供更多信息,以便我们更加了解您的问题。

感谢。

答案 1 :(得分:0)

如果您无效或者没有收到内存警告,那么您不会无效或无法计时。

animationTimer =零; [animationTimer invalidate];