[英]UIImagePickerController must be used from main thread only | app crash
大家好,我正在iOS 14中实施UIImagePickerController
。 当用户选择相机时,当用户同意使用相机时我的应用程序崩溃,在 xcode 上以紫色返回此错误
- [UIImagePickerController init] must be used from main thread only
我怎么解决这个问题? 感谢大家的建议
private func cameraAuth(auth sourceType: UIImagePickerController.SourceType) {
switch AVCaptureDevice.authorizationStatus(for: .video) {
case .denied: imagePickerAuthDenied()
case .restricted: imagePickerAuthRestricted()
case .authorized: showImagePicker(sourceType: sourceType)
case .notDetermined:
AVCaptureDevice.requestAccess(for: .video) { (success) in
if success { self.showImagePicker(sourceType: sourceType) }
else { self.imagePickerAuthDenied() }
}
default : print("Default Switch Camera Auth")
}
}
private func showImagePicker(sourceType: UIImagePickerController.SourceType) {
let imagePickerController = UIImagePickerController()
imagePickerController.delegate = self
imagePickerController.sourceType = sourceType
imagePickerController.allowsEditing = true
present(imagePickerController, animated: true, completion: nil)
}
您需要在DispatchQueue.main.async
中将代码包装在authorizationStatus/AVCaptureDevice.requestAccess(for: .video) { (success) in
AVCaptureDevice.authorizationStatus(for: .video) {
DispatchQueue.main.async {
///
}
}
AVCaptureDevice.requestAccess(for: .video) { (success) in
DispatchQueue.main.async {
///
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.