Первая проблема: Похоже, объявление вашего метода делегата не совпадает с объявленным в протоколе, поэтому оно рассматривается как отдельный метод. Xcode даже выдает предупреждение:
Метод экземпляра 'imagePickerController (picker: didFinishPickingMediaWithInfo :)' почти соответствует необязательному требованию 'imagePickerController (_: didFinishPickingMediaWithInfo :)' протокола 'UIImagePickerControllerDelegate'
Попробуйте изменить эту строку:
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {
до:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any])
UPD: пожалуйста, прочитайте ниже комментарии @ dfd о том, как избежать этого (довольно распространенного) путаницы.
Второй выпуск: , как уже упоминалось другими, вы должны правильно передать параметр в качестве инициализатора. С минимальными изменениями в вашем коде это будет:
let image2 = CIImage (image: myimage.image!)!
Тем не менее, чем меньше восклицательных знаков (т. Е. Разворачивание силы), тем лучше; для получения дополнительной информации об этом, отметьте Дополнительное сцепление как альтернативу принудительной распаковке .