2016-07-19 9 views
0

captureDocボタンをタップして画像をキャプチャしようとしています。しかし、キャプチャボタンをタップすると、「UIImage型の値をNSStringにキャストできませんでした」というエラーが表示されます。以下は私のアクションコードボタンです。'UIImage'to' NSString '型の値をキャストできません

@IBAction func captureDoc(sender: AnyObject) { 
    weak var weakSelf = self 

    self.scanDoc.captureImageWithCompletionHander({(imageFilePath) -> Void in 
     let captureImageView: UIImageView = UIImageView(image: UIImage(contentsOfFile: imageFilePath as! String)) 
     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) 
     let 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: { 
      captureImageView.frame = weakSelf!.view.bounds 

      }, completion: nil) 
    }) 
} 

私はANYOBJECTとしてimageFilePathを持っていますが、下記の文の中で、我々は、文字列を渡すために持っているので、私はこのエラーを取得しています。だから私は何をすべきか本当に混乱しています。誰かがそれを理解することができれば、問題は何かです。 ありがとうございました!あなたの説明に基づいて

UIImage(contentsOfFile: imageFilePath as! String) 
+0

は、画像へのパスではなく、あなたはすでに戻って画像を取得するようです – Wain

+0

ええ、今私は何をすべきですか? @Wain –

答えて

2

、あなたはあなたのコードは非常にあなただけ行うことができます見込んでパスの代わりに戻って画像を取得する:

self.scanDoc.captureImageWithCompletionHander({(image) -> Void in 
    let captureImageView: UIImageView = UIImageView(image: image) 
+0

今度は 'AnyObject!'型の値を変換できません。予想される引数型 'UIImage?'に変換します。私はAnyObjectとして自分のイメージを持っています。 @wain –

+0

私はUIImageにダウンキャストして動作します。サンクス@ワイン –

関連する問題