2013-03-21 174 views
0

我得到一個內存警告和應用程序的過程中,當拍攝照片與iPhone的時候崩潰。不知道如何解決這個問題,因爲在打開的相機作品的代碼 - 和照片後的代碼被捕獲的作品,但錯誤是在相機拍攝的應用程序的圖片部分地方......拍照時崩潰/內存警告 - iPhone

我像這樣啓動相機:

imagePicker = [[UIImagePickerController alloc] init]; 

if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) 
{ 
    [imagePicker setSourceType:UIImagePickerControllerSourceTypeCamera]; 
} 
else 
{ 
    [imagePicker setSourceType:UIImagePickerControllerSourceTypePhotoLibrary]; 
} 

if ([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear]) { 
      imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceRear; 
} else if ([UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront]) { 
      imagePicker.cameraDevice = UIImagePickerControllerCameraDeviceFront; 
} 

imagePicker.delegate = self; 

[self presentModalViewController:imagePicker animated:YES]; 

我收到「收到的內存警告」。就在Recorder_SourceStarted和AVCaptureDeviceDidStartRunningNotification之前。

然後我的應用程序崩潰之前得到Recorder_DidStartPreviewing,Recorder_FlashStateChanged,Recorder_DidStartFocusOperation,Recorder_DidCompleteFocusOperation,Recorder_FlashStateChanged,Recorder_WillCapturePhoto,Recorder_DidCapturePhoto和Recorder_PhotoStillImageSampleBufferReady。

Recorder_PhotoStillImageSampleBufferReady是應用程序崩潰之前,我得到最後的通知。它不會讓_UIImagePickerControllerUserDidCaptureItem在應用程序開始運行的代碼再次寫入。

有時它不會崩潰......我得到的內存警告和應用程序繼續工作,因爲它應該,但可能性是存在的崩潰,因爲這個內存警告和我得到的測試崩潰,所以我想要弄清楚是什麼導致了這種情況並加以解決。

任何幫助將是偉大的!謝謝!

+0

你有你'什麼 - (空)didreceivememorywarning'功能? – Niro 2013-03-21 19:59:17

+0

不...有什麼我可以放在那裏,這將有助於解決這個問題嗎? – RanLearns 2013-03-21 20:11:55

+0

在診斷爲什麼內存不足時,您應該使用儀器中的「泄漏」工具。這將顯示你可能有任何內存泄漏。在收到「低內存」警告時調用' - (void)didreceivememorywarning',因此您可以釋放並清除任何不必要的變量。 – Niro 2013-03-21 20:41:24

回答

1

我在應用程序中分配tableViews(不是因爲它使用ARC而解除分配),而且顯然在調用alloc tableViews之後,嘗試捕獲圖片會導致內存崩潰。我改成了設定的tableviews的.hidden屬性和關閉時,用戶需要看到的,而不是每一個被請求的tableview時間alloc'ing表,現在正在拍攝照片時,應用程序從未崩潰。有時候還會有記憶警告,但從來沒有發生過碰撞,並且在我拍照時通常沒有記憶警告。