【问题标题】:Cannot subscript a value of type [String : AnyObject] with an argument of type 'UIImagePickerController.InfoKey无法使用类型为“UIImagePickerController.InfoKey”的参数为类型为 [String : AnyObject] 的值下标
【发布时间】:2020-04-28 16:11:32
【问题描述】:
func imagePickerController(_picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
    self.dismiss(animated: true, completion: nil)
    if (info[UIImagePickerControllerMediaType] as! String == kUTTypeImage as String) {
        imageView.image = info[UIImagePickerControllerOriginalImage] as? UIImage
    }

}
func imagePickerControllerDidCancel(picker: UIImagePickerController) { self.dismiss(animated: true, completion: nil)
}

【问题讨论】:

    标签: ios swift5


    【解决方案1】:

    您可能升级了项目,但主要问题是您的方法声明错误。

    应该是:

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

    注意到 info 不是 [String:Any] 字典而是 [UIImagePickerController.InfoKey : Any] 字典

    它起作用了,因为来自 UIKit 的 ObjC/C 实现的实际方法调用并不关心你的类型说什么。

    也在后台 String == UIImagePickerController.InfoKey 但那只是低级。就快速打字而言,这不是真正可交换的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-22
      • 2017-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-12
      • 2016-09-29
      • 1970-01-01
      相关资源
      最近更新 更多