iOS 10.3中选择视频时UIImagePickerController崩溃
所以我正在做一个非常简单的图像选择器,我已经写了几百次了。为此,我编写了一个非常简单的扩展:iOS 10.3中选择视频时UIImagePickerController崩溃,ios,swift,crash,uiimagepickercontroller,Ios,Swift,Crash,Uiimagepickercontroller,所以我正在做一个非常简单的图像选择器,我已经写了几百次了。为此,我编写了一个非常简单的扩展: extension UIImagePickerController { func present(over controller: UIViewController, with source: UIImagePickerControllerSourceType, mediaTypes: [String]? = nil) {
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
NSM话筒用途说明
NSCameraUsageDescription
这可能是10.3中的测试版问题吗?我希望如此;)否
编辑:我设法在另一台设备上测试了这一点,它与测试版没有任何关系
到目前为止,我最好的竞争者是:
- 我把事情搞砸了(可能性很大)
- 其他东西(可能是依赖项)正在注册错误的通知
NotificationCenter.default.addObserver(forName: nil,
object: nil,
queue: nil) { note in
// Some strange code we were not using anymore
// Mainly logging all activity made as Notifications
}
他只是想要更多的木头。
这似乎与:
- 使用URL获取本地Avasset
是时候使用Git责备了 要想知道这是否是10.3版的问题,最简单的方法是在运行非测试版iOS的设备上试用。你能吗?@dfd没有降级是不行的。我手头只有一台设备。我希望它在测试版上使用Swift 3.1。。。我只是想看看是否有人有这个问题,然后再进行降级和升级;)我设法让一位朋友测试了它,它与beta无关……好消息有两个方面——你知道你可以排除规则10.3,而且你可能可以在你的设备上调试它。我的建议是在你的分机上退出。。。然后慢慢地把它们加进去。(甚至可能在没有覆盖的情况下启动。)我个人根本不太使用Dispatch,所以这将是我的第一个关注点。愚蠢的问题。。。您是否正在尝试在后台线程上执行与UI相关的操作?祝你好运,我解决了这个问题。与我的代码无关。其他人决定记录所有通知。这一切都搞砸了