Swift 斯威夫特';UIImage?&x27;不可转换为';UIImage';
我收到错误“UIImage?”无法转换为“UIImage” 对于Swift 斯威夫特';UIImage?&x27;不可转换为';UIImage';,swift,xcode,Swift,Xcode,我收到错误“UIImage?”无法转换为“UIImage” 对于行,选择图像=信息[.originalImage]作为?UIImage 在我的图像选择器功能中(如下) 这是因为您需要先展开选择图像: guard let selectedImage = info[.originalImage] as? UIImage else { return } 遇到相同的错误-在展开所选的图像的旁边,请确保具有正确/更新的功能参数(它们将信息从类型[String:Any]更改为[UIImagePickerC
行,选择图像=信息[.originalImage]作为?UIImage
在我的图像选择器功能中(如下)
这是因为您需要先展开
选择图像
:
guard let selectedImage = info[.originalImage] as? UIImage else { return }
遇到相同的错误-在展开所选的
图像
的旁边,请确保具有正确/更新的功能参数(它们将信息
从类型[String:Any]
更改为[UIImagePickerController.InfoKey:Any]
,这导致了错误
它应该是这样的:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
guard let selectedImage = info[.originalImage] as? UIImage else {
print("Error: \(info)")
return
}
// do your thing...
dismiss(animated: true, completion: nil)
}
希望这有帮助!信息在
info:[字符串:任意]
中更改(感谢苹果每次更改)
在新函数中重写您的函数:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
这应该起作用:
guard let image = info[UIImagePickerControllerOriginalImage] as? UIImage else { return }
签字人:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
已更改为:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])
这是错误的原因
将签名更改为新签名,即:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])
将解决此错误。在展开后是否删除了
selectedImage
上的可选问号?是的,我仍然获得“UIImage?”无法转换为“UIImage”,我还获得了“Slice”(也称为“Slice”)的警告类型对于不相关的类型“UIImage”总是失败。您的问题是,您正在尝试将非UIImage
的内容转换为UIImage
类型。谢谢Vasil,这似乎是xcode告诉我的,但我如何修复它?
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])