0
Я пытаюсь захватить изображение, нажав на кнопку captureDoc. Но когда я писал эту функцию вдруг я получил выше указанную ошибку в обработчике завершения,Невозможно преобразовать значение типа '(String) -> Void' в ожидаемый тип аргумента '((AnyObject!) -> Void)!'
self.scanDoc.captureImageWithCompletionHander({(imageFilePath: String) -> Void in
И я не получаю то, что пошло не так. Ниже приведен мой код функции captureDoc.
@IBAction func captureDoc(sender: AnyObject) {
weak var weakSelf = self
self.scanDoc.captureImageWithCompletionHander({(imageFilePath: String) -> Void in
var captureImageView: UIImageView = UIImageView(image: UIImage.imageWithContentsOfFile(imageFilePath)!)
captureImageView.backgroundColor = UIColor(white: 0.0, alpha: 0.7)
captureImageView.frame = CGRectOffset(weakSelf.view.bounds, 0, -weakSelf.view.bounds.size.height)
captureImageView.alpha = 1.0
captureImageView.contentMode = .ScaleAspectFit
captureImageView.userInteractionEnabled = true
weakSelf.view!.addSubview(captureImageView)
var dismissTap: UITapGestureRecognizer = UITapGestureRecognizer(target: weakSelf, action: #selector(self.dismissPreview))
captureImageView.addGestureRecognizer(dismissTap)
UIView.animateWithDuration(0.7, delay: 0.0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.7, options: .AllowUserInteraction, animations: {() -> Void in
captureImageView.frame = weakSelf.view.bounds
})
})
}
Сделать это просто 'imageFilePath' вместо' (imageFilePath: String) -> Void'. – Dershowitz123
Когда я сделал то, что вы сказали, его дайте мне ошибку на следующей строке, ошибка «AnyObject!» не конвертируется в 'String'; вы хотели использовать «как!» заставить downcast? на 4-й строке, где я объявил captureImageView, и когда я опустил его в String, тогда он покажет мне, что еще одна ошибка «imageWithContentsOfFile» недоступна: используйте конструкцию объекта «UIImage (contentsOfFile :)» @ Dershowitz123 –