Я работаю над простым приложением. Он имеет вид изображения с предварительно загруженным изображением и кнопкой. При нажатии на кнопку изображение должно инвертироваться в режиме просмотра изображений.
Он работает в первый раз, но я ожидаю, что он вернет изображение в исходную форму, когда я снова нажму кнопку. Однако он вылетает при втором нажатии кнопки.
Вот соответствующий код от ViewController.swift
:
@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var invertButton: UIButton!
@IBAction func invertButtonPressed(sender: UIButton) {
let beginImage = CIImage(image: imageView.image!)
let filter = CIFilter(name: "CIColorInvert")!
filter.setValue(beginImage, forKey: kCIInputImageKey)
imageView.image = UIImage(CIImage: (filter.outputImage)!)
}
По сути, beginImage
становится nil
во второй раз, и я понятия не имею, почему. Я пробовал выполнять отладку, разбивая эти плотные строки на максимальное количество let
назначений, но что-то таинственным образом происходит с этим CIImage
конструктором. Любые идеи?