UIImage 必须符合 PHPickerViewControllerDelegate 回调中的 _ObjectiveCBridgeable

7 swiftui phpickerviewcontroller

我查看了WWDC2020 视频,该视频解释了如何采用新的 PHPickerViewController API。我还看到几个博客准确地显示了以下代码。

func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
    if let result = results.first, result.itemProvider.canLoadObject(ofClass: UIImage.self) {
        result.itemProvider.loadObject(ofClass: UIImage.self) { (image, error) in
            DispatchQueue.main.async {
                self.parent.didCapture(image)
            }
        }
    } else {
        parent.didCapture(nil)
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这对我来说失败了,而且错误非常奇怪。

UIImage 必须确认 _ObjectiveCBridgable

我将附上屏幕截图,因为它令人难以置信

在此输入图像描述

硬件:M1芯片组

IDE:Xcode 12.4

小智 6

在使用之前将投射图像键入 UIImage,这应该可以解决问题。

if let typeCastedImage = image as? UIImage {
  self.parent.didCapture(typeCastedImage)
}
Run Code Online (Sandbox Code Playgroud)

  • 有问题的错误位于“result.itemProvider.loadObject(ofClass: UIImage.self)”行。 (4认同)