Ios UIImagePickerController扩展发现失败,错误为:(null)
我试图在我的ViewController上实现一个ImagePicker,但它显示一个空白的ImagePicker控制器,并且Ios UIImagePickerController扩展发现失败,错误为:(null),ios,swift,uiimagepickercontroller,Ios,Swift,Uiimagepickercontroller,我试图在我的ViewController上实现一个ImagePicker,但它显示一个空白的ImagePicker控制器,并且UIImagePickerController扩展发现失败,控制台上出现错误:(null)消息 我不知道我做错了什么,我也没有发现关于这件事的任何信息。不过,我注意到的一点是,PickerView的演示时间有点长 与ImagePicker相关的代码如下所示: private let imagePicker = UIImagePickerController() priv
UIImagePickerController扩展发现失败,控制台上出现错误:(null)
消息
我不知道我做错了什么,我也没有发现关于这件事的任何信息。不过,我注意到的一点是,PickerView的演示时间有点长
与ImagePicker相关的代码如下所示:
private let imagePicker = UIImagePickerController()
private func setupImagePicker() {
imagePicker.sourceType = .photoLibrary
imagePicker.allowsEditing = false
imagePicker.delegate = self
imagePicker.mediaTypes = ["public.image"]
}
@objc private func launchImagePicker() {
let photos = PHPhotoLibrary.authorizationStatus()
if photos == .notDetermined {
PHPhotoLibrary.requestAuthorization({ [weak self] status in
DispatchQueue.main.async {
if status == .authorized, let picker = self?.imagePicker {
self?.present(picker, animated: true, completion: nil)
} else {
self?.present(URealtorUtils.getAlert(message: "You have to authorize photo library access in order to upload a photo"), animated: true, completion: nil)
}
}
})
} else if photos == .authorized {
present(imagePicker, animated: true, completion: nil)
}
}
extension MyController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
func imagePickerController(_ picker: UIImagePickerController,
didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
self.viewModel.setPropertyImage(image)
}
dismiss(animated: true, completion: nil)
}
func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
dismiss(animated: true, completion: nil)
}
}
这是我在展示PickerView时得到的屏幕截图:
我检查了详细信息,您的实现中没有问题。 我还检查了苹果的官方样品。 同样的结果 最后,这是一个与iOS模拟器(11.3.1版)相关的问题。 仅供参考,我发现iPhone11 Pro Max在以前的一些版本中不起作用,但iPhone8和其他一些版本起作用。 我只是希望你们不要在这件事上浪费时间。向前走
谢谢。重复的?@matt它可能是重复的,是的。但是这个问题没有有效的答案。如何调用您的
launchImagePicker()
?您的代码似乎工作正常,我试过了。@Glenn我将其设置为UIButton上的目标。很有趣。您可以创建一个全新的项目并测试代码。从那里开始。另外,请尝试清理您的项目并安装新版本?您好,您是否可以引用以下语句:“这是一个与iOS版本/模拟器相关的问题”?这将有助于我在模拟机上安装iOS 13的iPhone8上解决这个问题。事实证明,它在iPhoneSE和iOS13上运行得非常好。疯狂的模拟器。谢谢,@SoftwareEngineer