2013-06-25 123 views
0

我一直在試圖找出是什麼導致這次崩潰。 我的主視圖控制器有一些像這樣的代碼來啓動攝像頭選擇器。UIImagePickerController takePicture崩潰

pickerControl = [[UIImagePickerController alloc] init]; 
    pickerControl.sourceType = UIImagePickerControllerSourceTypeCamera; 
    pickerControl.allowsEditing = NO; 
    pickerControl.wantsFullScreenLayout = YES; 
    pickerControl.showsCameraControls = NO; 
    pickerControl.cameraOverlayView = overlay; 
    pickerControl.delegate = self; 
    overlay.delegate = self; 
    [self presentViewController:pickerControl animated:NO completion:nil]; 

覆蓋層是一個視圖,底部有幾個按鈕。其中一個叫回拍照..和回調會調用takePicture像下面..

[pickerControl takePicture]; 

我不知道是什麼原因造成的,但它調用takePicture後立即崩潰。它不會一直髮生,但它會更頻繁地崩潰。

請幫助理解發生了什麼問題。

+0

您使用ARC嗎?你是否啓用了異常斷點?請發佈崩潰日誌。 – Robert

+0

http://www.rsaunders.co.uk/2013/06/add-exception-breakpoint.html – Robert

+0

嗨,對不起,沒有給出任何異常的細節。其實我只是將我的應用程序提交到構建於iOS 6上的應用程序商店。之後,我只嘗試測試iOS 7中是否有任何問題(通過在手機上升級iOS 7並通過iTunes將應用程序部署爲臨時部署) 我不能得到我的崩潰日誌,因爲xcode 4.6沒有看到我的手機,因爲它已經升級到iOS 7 有沒有其他的方式來調試? – travoux

回答

0

您在詢問有關只有在同意保密協議後纔可訪問的測試版軟件。所以我會忽略問題的iOS 7方面。對於獲取崩潰日誌,如果您已經知道哪個方法調用崩潰,那麼您不會從中獲得太多的功能。但你可以做的是使用C的signal爲你想要跟蹤的各種異常安裝異常處理程序。

收到此類異常後,請使用[NSThread callStackSymbols]來獲取一組調用堆棧符號 - 有效的回溯。然後您可以快速將其寫入磁盤,然後再次讀取,並相應地通知您自己。諸如Crashlytics之類的服務將它們累積並將它們發佈到服務器。您可以打開一個MFMailComposer並將它們作爲附件發送給自己。

直接使用Crashlytics SDK或類似的產品將允許您獲取實時跟蹤的崩潰報告,無論該構建是否已提交給Apple並且不需要Xcode執行任何解析。

+0

謝謝!我會盡量按照建議收集崩潰日誌! – travoux

相關問題