5

我正在使用常规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 的搜索收效甚微。在我决定使用自定义 Picker 之前,任何见解都会非常有用。

4

1 回答 1

0

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

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

您可以找到我在类似问题上发布的一些示例代码。

于 2015-06-10T16:29:12.150 回答