2012-07-05 3 views
1

iPad 만 애니메이션이있는 앱을 개발 중입니다. 애니메이션을 만들기 위해 약 400 개의 JPEG 이미지를 사용하고 있습니다. 크기는 7MB에 해당합니다. 하지만 애니메이션이 멈추고 50 개의 이미지에 애니메이션을 적용한 후 앱이 다운됩니다. NIB에서 UIImageView를 IBOutlet으로 사용하고 NSTimer를 사용하여 코드의 이미지를 변경합니다. 응용 프로그램이 메모리 수신 경고 메시지를 표시하는 데 실패합니다. 나는 Instruments 도구를 사용하여 점검했고 아무 누출도 발견하지 못했습니다.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

유효하지 않거나 0이 아닌 경우 메모리 경고를받지 않으면 타이머가 무효화되거나 무효화되지 않습니다.

animationTimer = nil; [animationTimer invalidate];