【问题标题】:iOS 8 UIImagePickerController crashing on ZoomiOS 8 UIImagePickerController 在缩放时崩溃
【发布时间】:2015-01-06 19:39:28
【问题描述】:

我使用普通的UIImagePickerController 使用设备相机拍摄照片。以下是我用来创建 UIImagePickerController 的代码,

self.imagePickerController = [[UIImagePickerController alloc] init];
self.imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
self.imagePickerController.allowsEditing = NO;
self.imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera;
self.imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto;
self.imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear;
self.imagePickerController.delegate = self;

以下是我用来显示 UIImagePickerController 的代码

[self presentViewController:self.imagePickerController animated:YES completion:nil];

现在,当 UIImagePickerController 出现时,如果我缩放以捕捉并返回到我正在呈现的视图控制器,应用程序会因 BAD_ACCESS 不规则地崩溃。编辑方案和一些调试后,我看到以下错误,

-[PLImagePickerCameraView didHideZoomSlider:]:消息发送到释放实例0x140109400

似乎在未分配的实例上调用了缩放滑块委托。还有其他人观察到这种行为吗?我正在使用 iOS 8.1 并在 iPhone 5S 上对其进行测试。搜索 PLImagePickerCameraView 的结果并不多。在我决定使用自定义选取器之前,任何见解都会非常有用。

【问题讨论】:

标签: ios ios8 uiimagepickercontroller ios8.1


【解决方案1】:

我也经历了UIImagePickerController 缩放崩溃。添加延迟修复了大多数但不是全部的崩溃。

根本原因是控制器在委托被释放后试图回调委托。我最终实现了一个子类 UIImagePickerController 来删除滑块视图的委托。

您可以找到我在similar question 上发布的一些示例代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-09-13
    • 2014-03-02
    • 1970-01-01
    • 1970-01-01
    • 2011-12-10
    相关资源
    最近更新 更多