2016-07-18 18 views
0

captureDoc 버튼을 탭하여 이미지를 캡쳐하려고합니다. 그러나이 함수를 작성했을 때 갑자기 위에서 언급 한 오류가 발생했습니다.'(String) -> Void'의 값을 예상되는 인수 유형으로 변환 할 수 없습니다 ((AnyObject!) -> Void)! '

self.scanDoc.captureImageWithCompletionHander({(imageFilePath: String) -> Void in 

그리고 무엇이 잘못되었는지 알지 못합니다. 아래 코드는 captureDoc 함수입니다. (: 문자열 imageFilePath) -> Void`을

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

      }) 

} 
+0

대신'의 그것은 단지'imageFilePath'를 확인 작동합니다. – Dershowitz123

+0

내가 다음 줄에 오류를 주었다고 말하면 오류는 'AnyObject!'입니다. 'String'으로 변환 할 수 없습니다. 당신은 '~을 (를) 사용 하시겠습니까?' 강제로 다운 캐스트합니까? 4 번째 줄에 captureImageView를 선언하고 String으로 다운 캐스트했을 때 'imageWithContentsOfFile'의 또 다른 오류를 사용할 수 없다는 것을 알 수 있습니다 : 객체 생성 'UIImage (contentsOfFile :)'@ Dershowitz123 –

답변

0

변화의 마지막 줄, 그것은

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

     }) 

}