error: Cannot subscript a value of type '[String : Any]' with an index of type 'UIImagePickerController.InfoKey'

error: Cannot subscript a value of type '[String : Any]' with an index of type 'UIImagePickerController.InfoKey'

我正在尝试通过 CoreML 重建用于图像检测的 Apple 测试应用程序,但出现错误:

Cannot subscript a value of type '[String : Any]' with an index of type 'UIImagePickerController.InfoKey

extension ImageClassificationViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String: Any]) {
        picker.dismiss(animated: true)

        let image = info[UIImagePickerControllerOriginalImage] as! UIImage
        imageView.image = image
        updateClassifications(for: image)
    }

错误出现在行中:

let image = info[UIImagePickerControllerOriginalImage] as! UIImage

您似乎正在使用 Xcode10/iOS12。委托方法的签名已更改。

使用 UIImagePickerController.InfoKey 而不是 String 作为 info 键。

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any])

然后使用.originalImage代替UIImagePickerControllerOriginalImage

extension ImageClassificationViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey: Any]) {
        picker.dismiss(animated: true)

        let image = info[.originalImage] as! UIImage
        imageView.image = image
        updateClassifications(for: image)
    }