Невозможно преобразовать значение типа '(String) -> Void' в ожидаемый тип аргумента '((AnyObject!) -> Void)!'

swift uiimageview completionhandler anyobject

808 просмотра

1 ответ

745 Репутация автора

Я пытаюсь захватить изображение, нажав на кнопку captureDoc. Но когда я написал эту функцию внезапно, я получил вышеуказанную ошибку в обработчике завершения,

 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
                })

            })

}
Автор: shahin ali agharia Источник Размещён: 18.07.2016 06:20

Ответы (1)


0 плюса

373 Репутация автора

поменяйте последнюю строчку, она должна работать

@IBAction func captureDoc(_ sender: UIButton) {
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
            }, completion: { _ in })

        })

}

Автор: Mohsen Hossein pour Размещён: 18.09.2016 07:07
Вопросы из категории :
32x32