Ios UIImagePickerController扩展发现失败,错误为:(null)

Ios UIImagePickerController扩展发现失败,错误为:(null),ios,swift,uiimagepickercontroller,Ios,Swift,Uiimagepickercontroller,我试图在我的ViewController上实现一个ImagePicker,但它显示一个空白的ImagePicker控制器,并且UIImagePickerController扩展发现失败,控制台上出现错误:(null)消息 我不知道我做错了什么,我也没有发现关于这件事的任何信息。不过,我注意到的一点是,PickerView的演示时间有点长 与ImagePicker相关的代码如下所示: private let imagePicker = UIImagePickerController() priv

我试图在我的ViewController上实现一个ImagePicker,但它显示一个空白的ImagePicker控制器,并且
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