Swift 4.2无法将类型’(UIImagePickerController.InfoKey).Type’的值转换为预期的参数类型’UIImagePickerController.InfoKey’

我的下面的代码与swift 4工作得很好,但升级到swift 4.2之后我收到了这个错误,我浪费了3个小时搜索问题但是失败了。 如果有人可以指导我如何解决这个问题。

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { if postType == 2 { let image = info[convertFromUIImagePickerControllerInfoKey(UIImagePickerController.InfoKey)] as! UIImage mediaType.image = image } else { videoURL = info[convertFromUIImagePickerControllerInfoKey(UIImagePickerController.InfoKey.mediaURL)] as? URL do { let asset = AVURLAsset(url: videoURL!, options: nil) let imgGenerator = AVAssetImageGenerator(asset: asset) imgGenerator.appliesPreferredTrackTransform = true let cgImage = try imgGenerator.copyCGImage(at: CMTime.init(value: 0, timescale: 1), actualTime: nil) let thumbnail = UIImage(cgImage: cgImage) self.mediaType.image = thumbnail } catch { print("*** Error generating thumbnail: \(error)") } } picker.dismiss(animated: true, completion: nil) } 

你可以这样写……

 if let image = info[.originalImage] as? UIImage { print("image found") //do something with an image } else { print("Not able to get an image") } 
 info[convertFromUIImagePickerControllerInfoKey(UIImagePickerController.InfoKey)] 

没有任何意义。 您正在指定整个枚举类型InfoKey而不是特定值,例如:

 info[convertFromUIImagePickerControllerInfoKey(UIImagePickerController.InfoKey.originalImage)] 

这可能也可能写成:

 info[.originalImage] as! UIImage