2016-12-22 5 views
-3

URLから画像を取得し、画像をUIImageViewとキャッシュ辞書に設定しました。 しかし、私は辞書に画像を設定すると、私はこのエラーが表示されます:swift 3.0メンバー 'subscript'へのあいまいな参照。swift 3.0メンバー 'subscript'へのあいまいな参照

var imageCache = Dictionary<String, UIImage>() 
func getImage(url: String, imageView: UIImageView) { 
    let image = self.imageCache[url] as UIImage? 
    if image == nil { 
     let url = URL(string:url)! 
     let req = NSMutableURLRequest(url:url) 
     let session = URLSession.shared 
     let task = session.dataTask(with: req as URLRequest) { (data, response, error) in 
      if data != nil && error == nil { 
       let image: UIImage = UIImage(data: data!)! 
       imageView.image = image 
       self.imageCache[url] = image //******* Here got the error! 
      } 
     } 
     task.resume() 
    } else { 
     imageView.image = image 
    } 
} 

ありがとうございました。あなたは文字列としてあなたの辞書のキーを宣言するため

+0

の可能性のある重複した[エラー:スウィフト3のメンバー「添字」にあいまい参照](HTTP: //stackoverflow.com/questions/37874157/error-ambiguous-reference-to-member-subscript-in-swift-3) –

+0

@RemyCiliaは本当に同じ問題ではない – melody5417

+0

URLRequestを一切使用しないので、 'let req ...'を呼び出し、 'url'をデータタスクの最初のパラメータとして渡します。 – vadian

答えて

0

あなたはURL、それ文句を言わない仕事としてキーを使用している、url.absoluteStringに変更し

+0

非常にありがとう、それは動作します。しかし、私のparamのURLはStringクラスでもあり、なぜ動作しません。 – melody5417

+0

url変数を同じ名前の別の 'URL'型変数でオーバーライドするので、' url:String'を 'urlString:String'のようなものに変更して、' urlString'をキーとして使用します – Tj3n

+0

ええ、これが恋しい。それは愚かなエラーです。どうもありがとう。 – melody5417

関連する問題