图像?不能转换为 UIImage:Xcode 在尝试使用原始图像时抛出错误
Posted
技术标签:
【中文标题】图像?不能转换为 UIImage:Xcode 在尝试使用原始图像时抛出错误【英文标题】:UImage? isn't convertible to UIImage: Xcode throws error when trying to use original image 【发布时间】:2018-11-04 04:39:17 【问题描述】: func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
// The info dictionary may contain multiple representations of the image. You want to use the original.
guard let selectedImage = info[.originalImage] as?
UIImage else
fatalError("Expected a dictionary containing an image, but was provided the following: \(info)")
// Set photoImageView to display the selected image.
photoImageView.image = selectedImage
// Dismiss the picker.
dismiss(animated: true, completion: nil)
我正在尝试构建一个允许您从库中选择图像的 ios 应用程序,但它一直失败并出现错误“UIImage?不可转换为 UIImage。有没有办法修复此错误或绕过它作为现在?我在 MacOS 10.14 上运行 Xcode 10.1。
【问题讨论】:
首先使用正确的方法签名:func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])
。
在您的警戒声明中,我认为您不需要 ?在 as 之后。
【参考方案1】:
将.originalImage
替换为UIImagePickerControllerOriginalImage
这对我有用。
Xcode 版本:10.1
Swift 版本:4.0
【讨论】:
【参考方案2】:info[.originalImage] 是 Any?价值。 Si 它就像它可以包含一个 UIImage?值或零。所以,试试吧:
guard guard let selectedImage = info[.originalImage] as? UIImage? else ...
将该问号添加到 UIImage。就是这样。
【讨论】:
正如@rmaddy 上面已经评论的,委托方法的签名是错误的。 info 参数必须是 '[UIImagePickerController.InfoKey : Any]' 类型,参见developer.apple.com/documentation/uikit/…以上是关于图像?不能转换为 UIImage:Xcode 在尝试使用原始图像时抛出错误的主要内容,如果未能解决你的问题,请参考以下文章