2012-07-05 104 views
1

我正在iPad上開發一個只有動畫的應用程序。我使用大約400張JPEG圖像製作動畫。大小對應於7MB。但動畫50個圖像後,動畫停止並且應用程序崩潰。我在NIB中使用UIImageView作爲IBOutlet並使用NSTimer在代碼中更改圖像。該應用程序崩潰,顯示消息收到內存警告。我檢查了使用儀器工具,發現沒有泄漏。在iPad上收到內存警告

任何建議表示讚賞。

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

} 
+0

這意味着您可以添加無限時間圖像查看,以便問題白色 您可以將圖像更改爲圖像視圖。 所以你的問題可能會被解決 –

回答

2

你使用多個定時器改變圖像的特定時間段的代碼?

根據我的經驗,您需要實時使計時器無效並且不需要時間值,以便它可以解決您的問題。

此外,您可以在此處放置代碼,以便我們可以更好地識別您的問題。

謝謝。

+0

檢查編輯.. –

0

如果您無效或無,則不會使您的計時器失效或無,則您沒有收到存儲器警告。

animationTimer = nil; [animationTimer invalidate];