2016-04-30 7 views
1

私は私のiPhoneに私のアプリを実行したときに、私はこのエラーを取得Xcodeの7と迅速を使用しています:は、「型の値を割り当てることができません[文字列:ANYOBJECT]

UIImage?

を入力するタイプ [String : AnyObject]の値を割り当てることができません
func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) { 
       imgview.image = info 
       [UIImagePickerControllerOriginalImage]as?UIImage; 
       dismissViewControllerAnimated(true, completion: nil) 
      } 

答えて

1

問題は、スウィフトで別のラインに[]演算子を分割することができないということです。角括弧は、間接参照されている辞書と同じ行にする必要があります。また、pickerを却下してリリースすることを忘れないでください。

picker.dismissModalViewControllerAnimated(true) 
picker.release() 
imgview.image = info[UIImagePickerControllerOriginalImage] as UIImage 

Swiftはステートメントを分解するために必須のセミコロンを使用しないので、どの行に行くかにもっと注意を払う必要があります。あなたのコードは次のように解釈されます:明らかにUIImagePickerControllerOriginalImage UIImageから

で構成される配列をキャストimgview.image

    • 割り当てinfo、これはあなたが取得しようとした効果ではありません。大括弧をinfoと同じ行に移動すると、この問題が解決されます。

  • +0

    もう一度同じコードを見てください(同じミスを犯しました)。辞書検索は2行に分かれています。 – rmaddy

    +0

    @rmaddyこれを指摘してくれてありがとう、私はあなたがそう言っていたまでに線が関連していたことを知らなかった。 – dasblinkenlight

    0

    infoは、[String : AnyObject]という意味の辞書です。辞書のキーはストリングです。値は任意のオブジェクトにできます。しかし、あなたが書いた:

    imgview.image = info 
    

    だから、あなたはimgview.imageに、いくつかの辞書を割り当てられ、まだimgview.imageはUIImageタイプのオプションです。代わりに、あなたは次のようなものが必要です:

    let image = info[UIImagePickerControllerEditedImage] as! UIImage 
    imageView.image = image 
    
    関連する問題