2010-08-17 3 views
1

나는 첫 번째 앱을 마침내 상점에 넣기 시작했습니다. 모든 것은 잘 작동하고 메모리 누수는 거의 존재하지 않습니다 .... 카메라를 사용하거나 카메라 롤에서 이미지를 선택할 때를 제외하고.카메라 또는 카메라 롤 피커가 장착 된 iPhone UIImageView 메모리 경고 수준 2

사용자가 카메라 대 롤을 선택하면 .... 카메라가 잘 작동합니다 ... 사진을 찍은 다음 "사용"을 선택하면 충돌합니다. 카메라 롤에 대해서도 마찬가지입니다. 나는 멍청 하니까 뭔가를 망쳐 놓으면 나를 놀래주지 않을거야. 어떤 도움/제안 크게 여기에 코드입니다 ... 감사 :

-(IBAction) getPhoto:(id) sender { 
    UIImagePickerController * picker = [[UIImagePickerController alloc] init]; 
    picker.delegate = self; 

    if((UIButton *) sender == choosePhoto) { 
     picker.sourceType = UIImagePickerControllerSourceTypeSavedPhotosAlbum; 
    } else { 
     picker.sourceType = UIImagePickerControllerSourceTypeCamera; 
    } 

    [self presentModalViewController:picker animated:YES]; 
    //[picker release]; 
} 
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info { 
    [picker dismissModalViewControllerAnimated:YES]; 
    theimageView.image = [info objectForKey:@"UIImagePickerControllerOriginalImage"]; 
    [picker release]; 
} 

답변

0

1400x750 (정확한 치수가 확실하지 않음) 이후 원본 이미지를 사용하기 때문에 문제가 될 수 있습니다. 이미지 뷰의 이미지로 설정하면 메모리가 부족할 수 있습니다. 표시됨 ... 아마도 이미지를 320x480 또는 480x320 크기로 조정하여 이미지보기에 표시하면 문제가 해결 될 것입니다.

+0

이것은 훌륭한 제안이었습니다. 귀하의 의견을 데리고 다른 사이트에서 다른 이미지를 결합하고 이미지 크기를 줄이고 내 수업에서 UIImage를 만들었습니다 ... 크기가 조정 된 사진을 설정 한 다음 UIImageView.image 속성을 UIImage로 설정합니다. 이 모든 것이 앱을 훨씬 더 잘 작동시키는 것으로 보입니다. –

0

나를 밖으로 점프 유일한 문제는 당신이 따옴표에 넣어하지 않도록 UIImagePickerControllerOriginalImageNSString 일정이다 :

theimageView.image = [info objectForKey:UIImagePickerControllerOriginalImage]; 

비록 그 라인이 실패하더라도, 그것은 아마도 충돌을 야기해서는 안되는 theimageView.image에서 nil으로 설정했을 것입니다. Xcode Console에서 충돌에 대한 정보를 적어도 더 많이보아야합니다. 또한 this SO answer의 도움말을 확인하십시오.

+0

감사합니다. 나는 여기에 일어나는 일들이 많아서 멋지고 깔끔하게 만들어주는 것이 도움이 될 것이라고 생각합니다. –

0

변경
[picker dismissModalViewControllerAnimated : YES];
to
[self dismissModalViewControllerAnimated : YES];
정상 작동합니다.

관련 문제