2010-08-07 2 views
1

UIImagePickerController이 부모보기를 언로드 할 수 있음을 발견했습니다. 특히 카메라를 가져 오면 viewDidLoad가 다시 호출되는 결과가 발생합니다. 이 문제는 메모리 부족으로 발생합니다. 하지만 UIImage*imagePickerController:didFinishPickingMediaWithInfo에서보기 컨트롤러에 저장하고있었습니다. 이 데이터는 다시로드 한 후에 손실됩니다. (보기 컨트롤러에 대한 self 포인터가 변경되었고 UIImage*이 null입니다.) 뷰 컨트롤러에 이러한 변수를 저장하는 것은 좋지 않은 생각입니까? 글로벌 (싱글 톤) 객체에서 이들을 어디에 저장해야합니까?UIImagePickerController는 viewDidLoad를 발생시킵니다 - 이미지 데이터를 저장할 위치는 어디입니까?

감사

답변

0

이 정말 실제로 문제를 해결하기 위해 좋은 충고가 아니라 메모리 경고를 무시하는 것은이 경우에 많은 도움이 될 것입니다 : 당신의 뷰 컨트롤러에서

-(void)didReceiveMemoryWarning 
{ 
    // we're too important to get flushed out by our child imagepicker. 
} 

는이 문제를 해결합니다.

메모리 경고를 언로드하지 않기 때문에 실제로 필요한 객체를 저장할 장소입니다. 응용 프로그램 대리인 일 수 있습니다. (메모리 경고에 응답하지 않는 곳이면 어디든)

+0

고마워! 나는 그 방법에 대해 몰랐다. –

관련 문제