0

我收到内存警告,并且在使用 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,此时应用程序开始运行我再次编写的代码。

有时它不会崩溃......我收到内存警告并且应用程序继续正常工作,但是由于这个内存警告可能会发生崩溃并且我在测试中遇到崩溃所以我想找出导致此问题的原因并修复它。

任何帮助都会很棒!谢谢!

4

1 回答 1

1

我在应用程序中分配 tableViews(不是因为它使用 ARC 而解除分配),显然在调用 alloc tableViews 之后,尝试捕获图片会导致内存崩溃。当用户需要查看表格而不是每次请求表格视图时都进行分配时,我将其更改为打开和关闭表格视图上的 .hidden 属性,现在应用程序在拍照时永远不会崩溃。有时还有内存警告,但从来没有崩溃过,而且我拍照时经常根本没有内存警告。

于 2013-04-06T06:20:31.700 回答