2012-12-18 2 views
7

아이폰 카메라로 사진을 찍을 수있는 앱이 있습니다. 모든 것이 매력처럼 작동하지만 사용 가능한 저장 공간이 충분하지 않은 새 기기를 테스트 할 때 카메라 앱이 종료되지 않았습니다.카메라 앱이 iPhone에서 "사용 가능한 저장 공간이 충분하지 않습니다 ..."라고 표시하지 않습니다.

기본적으로 소스 카메라로 이미지 선택기를 열면 "사진을 찍을 수있는 저장 공간이 충분하지 않습니다 ..."라는 메시지가 나타나고 확인을 누르면 카메라 앱에 있습니다. 셔터가 닫히고 "사진 촬영"및 "취소"버튼이 모두 회색으로 표시됩니다. 내가 할 수있는 유일한 방법은 앱을 죽이는 것입니다.이 화면을 벗어날 방법이 없기 때문입니다.

UIImagePickerController * photoPicker= [[UIImagePickerController alloc] init]; 
photoPicker.delegate = self; 
photoPicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
if ([UIImagePickerController isSourceTypeAvailable:photoPicker.sourceType]) { 
    [self presentModalViewController:photoPicker animated:YES]; 
} 

이 당연히 UIImagePickerControllerDelegate 내가 두 대리자 메서드를 구현 (모두 성공에 올바르게 응답 및 이벤트를 취소)를 호출 목적 : 내 코드에서

내가 좋아하는 뭔가 카메라를 호출

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info; 
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker; 

"사용 가능한 공간 없음"동작은 대리자 메서드 중 하나에 해당하지 않으므로 프로그래밍 방식으로 카메라 응용 프로그램을 종료 할 수 없습니다.

의견이 있으십니까?

편집 :

카메라는 내가 그 소스를 사용할 수 있었기 때문에 앱이 충돌 눈치를 사용할 수없는 경우 시뮬레이터에서 응용 프로그램을 실행하려고합니다. 나는 단순히 응용 프로그램을 충돌 것, 심지어는 컨트롤러를 호출하기 전에 photoPicker에 사용할 수없는 SOURCETYPE를 할당하는 것을 발견, 그래서 다음에 코드를 변경 : 여전히 내 문제가 해결되지 않는이

UIImagePickerController * photoPicker= [[UIImagePickerController alloc] init]; 
photoPicker.delegate = self; 
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { 
    photoPicker.sourceType = UIImagePickerControllerSourceTypeCamera; 
}else{ 
    return; 
} 
[self presentModalViewController:photoPicker animated:YES]; 

하지만, 흥미로운 사실입니다.

+1

피커를 표시하기 전에'isSourceTypeAvailable'을 시도하십시오. 어쩌면 사과가이 사건을 생각했을거야. –

+0

필자는 실제로 photoPicker를 표현하기위한 조건으로 이미 'isSourceTypeAvailable'을 내 코드에 가지고 있는데, 더 간단한 코드 조각을 보여주기 위해 그것을 제거했습니다. 그럼에도 불구하고 기여에 감사드립니다! 원래 게시물을 편집하겠습니다. – manecosta

+0

사실 나는 방금 photoPicker를 제시하기 전에'isSourceTypeAvailable'을 검사하는 것이 좋은 곳이 아니라는 것을 알았습니다. 마치 소스가 사용 가능하지 않은 것처럼'.sourceType'의 배역에서 충돌합니다. 이것은 여전히 ​​내 문제를 해결하지 못했습니다. 이 사실을 반영하기 위해 원본 게시물을 업데이트하겠습니다. – manecosta

답변

1

문제는 카메라가 아니지만 응용 프로그램의 나머지 부분 : 카메라가 didReceiveMemoryWarning을 속이므로 "돌아 오려고했다"는보기가 "죽었습니다". 더 이상 존재하지 않습니다.

수정 사항은 UIViewController의 viewDidLoad, viewDidUnload, viewWillDisappear, viewWillAppear 등을 구현하고 앱이 Camera로 인한 메모리 부족 상황을 처리하고 Camera가 사라질 때 필요한 모든 것을 초기화 할 수 있는지 확인하는 것입니다.

+0

그 모든 것을 구현했지만 성공하지 못했습니다. 오류는 메모리 부족과 관련이 없으며 저장소가 부족합니다. 그래서 카메라를 열면'viewDidDisappear' 호출은 카메라 제어기가 현재의 것을 대체하기 때문에 기대할 수있는 것처럼 호출되지만'viewDidUnload' 또는'didReceiveMemoryWarning'에도 들어 가지 않습니다. 도움을 주셔서 감사합니다! – manecosta

관련 문제