Swift 4.2 Cannot convert value of type '(UIImagePickerController.InfoKey).Type' to expected argument type 'UIImagePickerController.InfoKey'

為{幸葍}努か 提交于 2019-11-29 05:57:43

You can write like...

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)]

does not make any sense. You are specifying the whole enum type InfoKey instead of a specific value, e.g.:

info[convertFromUIImagePickerControllerInfoKey(UIImagePickerController.InfoKey.originalImage)]

Which can be probably also written just as:

info[.originalImage] as! UIImage
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])
{
    // Local variable inserted by Swift 4.2 migrator.
    let info = convertFromUIImagePickerControllerInfoKeyDictionary(info)

    if picker.sourceType == .photoLibrary || picker.sourceType == .camera
    {
        let img: UIImage = info[convertFromUIImagePickerControllerInfoKey(UIImagePickerController.InfoKey.editedImage)] as! UIImage
        EditedImage=img
        WAProfile_UserImageView.image=EditedImage
        picker.dismiss(animated: true, completion: nil)
    }
}

// Helper function inserted by Swift 4.2 migrator.
fileprivate func convertFromUIImagePickerControllerInfoKeyDictionary(_ input: [UIImagePickerController.InfoKey: Any]) -> [String: Any] {
return Dictionary(uniqueKeysWithValues: input.map {key, value in (key.rawValue, value)})}

// Helper function inserted by Swift 4.2 migrator.
fileprivate func convertFromUIImagePickerControllerInfoKey(_ input: UIImagePickerController.InfoKey) -> String {
return input.rawValue}

You can access the properties as follows.

var editedImage = (info[UIImagePickerControllerEditedImage] as? UIImage)!
var originalImage = (info[UIImagePickerControllerOriginalImage] as? UIImage)!
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!