【发布时间】:2017-03-05 15:19:21
【问题描述】:
所以我正在做我已经写了数百次的非常简单的图像选择器。为此,我编写了这个非常简单的扩展:
extension UIImagePickerController {
func present(over controller: UIViewController,
with source: UIImagePickerControllerSourceType,
mediaTypes: [String]? = nil) {
DispatchQueue.main.async {
self.allowsEditing = true
self.sourceType = source
if source == .camera {
self.cameraDevice = .front
}
self.modalPresentationStyle = .popover
self.mediaTypes = mediaTypes ?? UIImagePickerController.availableMediaTypes(for: source) ?? []
controller.present(self, animated: true, completion: nil)
}
}
}
而且效果很好。当然,直到您选择一个视频。 只要你选择了一个视频,我就会得到堆栈跟踪的这种美感:
在你问之前。是的,我已经在 Info.plist 中设置了所有隐私设置:
NSPhotoLibraryUsageDescription NSMicrophoneUsageDescription NSCameraUsageDescription
这可能是 10.3 中的 Beta 版问题吗?我希望如此 ;) 不
编辑:我设法在另一台设备上对此进行了测试,它与测试版没有任何关系。
到目前为止,我最好的竞争者是:
- 我搞砸了(很大可能)
- 其他东西(可能是依赖项)正在注册错误通知
【问题讨论】:
-
嗯,确定它是否是 10.3 问题的简单方法是在运行非 beta iOS 版本的设备上进行尝试。你能做到吗?
-
@dfd 并非没有降级。我手头只有一台设备。而且我希望它在测试版上使用 Swift 3.1... 我只是想看看在降级和以后再次升级之前是否有人遇到过这个问题;)
-
我设法让朋友测试它,它与测试版无关......
-
嗯,好消息是双重的 - 您知道您可以排除 10.3,并且您可能可以在您的设备上调试它。我的建议是退出您的扩展程序中的内容......然后慢慢将它们重新添加。(甚至可能在没有覆盖的情况下开始。)我个人根本不使用 Dispatch 所以这将是我的第一个焦点。愚蠢的问题......你是不是想在后台线程上做一些与 UI 相关的事情?祝你好运。
-
我解决了这个问题。与我的代码无关。其他人决定记录所有通知。搞砸了一切
标签: ios swift crash uiimagepickercontroller