【问题标题】:error: Cannot subscript a value of type '[String : Any]' with an index of type 'UIImagePickerController.InfoKey' [duplicate]错误:无法使用“UIImagePickerController.InfoKey”类型的索引为“[String:Any]”类型的值下标 [重复]
【发布时间】:2018-12-29 19:31:52
【问题描述】:

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

无法使用“UIImagePickerController.InfoKey”类型的索引为“[String : Any]”类型的值下标

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

【问题讨论】:

    标签: ios swift coreml


    【解决方案1】:

    看来您使用的是 Xcode 10/iOS 12。委托方法的签名已更改。

    使用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)
        }
    

    【讨论】:

      猜你喜欢
      • 2018-12-22
      • 2019-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多