Я попробовал это с помощью Swift 5, и он работает без ошибок. Но проблема со Swift 4.
Прежде всего, если вы используете Xcode 10.x, я настоятельно рекомендую вам выполнить обновление Swift 5. Забудьте Swift 4 и оставайтесь в курсе.
Во-вторых, это правильная UIImagePickerControllerDelegate
реализация в Swift 5:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
// do stuff with your original image...
} else if let image = info[UIImagePickerController.InfoKey.editedImage] as? UIImage {
// do something with your edited image...
}
dismiss(animated: true, completion: nil)
}
В любом случае, если вы хотите придерживаться Swift 4
, используйте функцию делегата ImagePicker:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
if let chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage {
// do stuff with your image
} else if let chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage {
// do stuff with your image
}
dismiss(animated:true, completion: nil)
}