I am trying to implement an image picker. In the delegate method I am getting the following error.
or
Here is the code, I wrote
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
var image = info[.editedImage] as? UIImage
if image == nil {
image = info[.originalImage] as? UIImage
}
simpleImagePicker!.dismiss(animated: true)
}
I tried this using Swift 5 and it is working without error. But the issue is with Swift 4.
How to resolve this? Is there any solution for it?
The UIImagePickerControllerDelegate
signature is different for different Swift versions. You are using the method of Swift 4.2 and later which is far different from Swift 4.0.
Swift 4.0:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let editedImage = info[UIImagePickerControllerEditedImage] as? UIImage {
} else if let originalimage = info[UIImagePickerControllerOriginalImage] as? UIImage {
}
}
Swift 4.2 & Swift 5:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let image = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
} else if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
} else {
print("Something went wrong")
}
}
So, check the proper swift version and follow the proper methods!