【发布时间】:2014-12-11 18:42:15
【问题描述】:
在我们的应用程序中,我们在另一个 UIViewController 之上以模态方式显示相机。仅在 iOS 8.x 上,如果您缩放,大约 1/10 的时间会导致崩溃:
PLImagePickerCameraView didHideZoomSlider:]: 消息发送到释放的实例
有一个现有的 SO 帖子有一个假定的解决方法 - How-to find out what causes a didHideZoomSlider error on IOS 8? - 但我尝试的每个变体都无法解决崩溃。该建议涉及在 dismissViewControllerAnimated:completion: 之前延迟。无论我尝试什么延迟,我仍然可以重现崩溃。
仅在 (1) 缩放相机视图 (2) 选择“取消”或拍照并退出相机时才会发生,所有这些都在缩放指示动画消失之前不久发生。这似乎是 Apple 尚未修复的 iOS 8.x 中的一个问题。它在 Apple 的代码中崩溃,与我们拥有的任何东西无关。
我确实看到“对未渲染的视图进行快照会导致快照为空。请确保您的视图在快照之前或屏幕更新后的快照之前至少渲染过一次。”但这似乎无关紧要,并且指的是 UIImagePickerController 中的代码,而不是我们正在做的任何事情。
我即将与 Apple DTS 打交道,看看我们是否能找到一些方法来避免这种情况,或者环境中可能导致这种情况发生的原因。我想在这里问一下,以防有人有其他想法。
在 iOS 7.X 下不会发生此崩溃。发生在任何型号的 iPhone 或 iPad 上。
【问题讨论】:
-
message sent to deallocated instance。您是否尝试过从呈现视图控制器中保持对图像选择器的强引用? -
是的,底层 UIViewController 将选取器保存在强引用中。
-
@ahwulf - 你是如何解决这个问题的?将图像选择器作为弱参考吗?即使我也面临同样的问题。
-
不要忘记在
imagePickerControllerDidCancel:和imagePickerController:didFinishPickingMediaWithInfo:中添加延迟到解雇
标签: ios uiimagepickercontroller