2009-12-02 2 views
14

나는이 아주 좋은 참조를 참조했습니다 : https://stackoverflow.com/questions/1282830/uiimagepickercontroller-uiimage-memory-and-more 그러나 나는 아주 심각한 문제가 있습니다. 사진을 찍은 후 메모리 경고가 표시됩니다. 이 사진은 제가 찍은 첫 번째 사진이 아닌 두 번째 또는 세 번째 사진입니다.한 번 UIImagePicker를 사용한 후 메모리 경고

응용 프로그램 디렉토리에서 작은 크기의 jpeg를 두 번 가져 와서 화면을 스크롤 할 수 있는지 궁금합니다. 내가 생각할 수있는 유일한 해결책은 UIImagePicker가 활성화되어있는 동안 내 메인뷰의 모든 것을 언로드 한 다음 나중에 다시로드하는 것입니다. 그러나 이것이 올바른 해결책인지 확실하지 않으며 어떻게해야할지 모르겠습니다.

UIImagePicker가 을 사용합니까? 메모리가 많습니까? 나는 아직까지 이미지를 처리하거나 표시하는 것조차받지 못했습니다. 이미지를 버리더라도 메모리 경고를받습니다.

도움을 주시면 감사하겠습니다.

답변

9

예, 이런 일이 발생합니다. 기억해야 할 것은 메모리 경고를 얻는 것이 좋으며, 나쁜 사람이라는 것을 의미하는 것은 아니며 메모리 경고에 대한 응답으로 응용 프로그램이 충돌하지 않거나 혼동되지 않도록해야합니다.

특히 UIViewController의 기본 동작은보기가 표시되지 않으면보기를 언로드하고 전체 화면 이미지 선택기가 표시되면 표시되지 않는다는 점을 이해해야합니다.

+0

맞아요. 올바르게 이해한다면 UIImagePicker가 표시되는 동안 내 뷰를 숨길 필요가 없습니다. 뷰 컨트롤러가 이미 그 일을 처리하고 이미지를 가져온 후에 메모리 경고를받을 수 있습니다. 너무 이색 적이 지 않은 한 (예 : 전체 해상도 이미지 표시) –

+0

앱이 "너무 많은"메모리를 사용하고 메모리 부족 경고를 받았을 때 "충분"하지 않으면, OS가 잠재적으로 앱을 죽일 수 있습니다. "충분히"와 "너무 많이"에 관해서는 정확한 값이 없습니다. –

+0

이 답변 (http : // stackoverflow.co.kr/questions/457568/iphone-development-memory-limitation-for-iphone-application/457730 # 457730) 약 22MB의 사용량으로 경고 메시지가 나타납니다. 애플이 공식적으로 확인하지는 않았지만. –

1

당신이 uneditted 이미지를 사용하고 있으며, 그들이 다시 거대하고 w 병이 충돌하여 앱 난 아이폰 기본 320 × 480 해상도로 사진 크기를 조정하는 것이 좋습니다 인 1400x1300의 전체 고장 크기에서 오는 대부분의 경우, 수정해야 문제

+1

안녕, 이미지 I를 설정하기 전에 일축 다음 표시하는 것보다 훨씬 작습니다. 그리고 카메라가 사진을 찍은 후 그리고 이미지의 크기를 조정할 수 있기 전에 메모리 경고를받습니다. 따라서이 문제가 확실하지 않습니다. –

+0

음, 여기 – Daniel

+0

어딘가에 다른 메모리 누수가있을 수 있다는 소리가 들리니 사진을 찍으십시오. 그러기 전에도 C 충돌을 선택할 수 있습니까? – Daniel

45

아직 실제 답변을 찾고 모호한 진술을 찾고있는 모든 사람들을 위해 여기를보십시오. 나는 "Handle your memory"와 같은 수백 가지 대답이 있음을 알아 차렸지만 아무 것도 대답하지 못했다.

변경받는

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    [imageView setImage:image]; 
    [self dismissModalViewControllerAnimated:YES]; 
} 

다음 ...이 밖에 다른 사람에게 도움이되기를 바랍니다 그렇게 모달보기 이미지 ...

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info 
{ 
    UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage]; 
    [self dismissModalViewControllerAnimated:YES]; 
    [imageView setImage:image]; 
} 
+0

정말 좋은 생각입니다. 디버깅 할 때 이미지를 올바르게 가져 왔지만 imageView가 이미지를 잃어 버렸습니다. 그러나 모달보기를 일찍 해산하는 것은 매력처럼 작동합니다. 감사! 1 위로! – karim

+0

그럼 왜이 기능이 작동합니까? –

관련 문제