2016-09-18 12 views
1

エラー:非関数型 'HTTPURLResponse'の値を呼び出せません。 これは@エスケープによって引き起こされるはずですが、以下の文章では機能しません。助けてください、Swift 3.0、AlamofireImage。 他にも同様の回答がありますが、以下のコードではうまく機能しません。非関数型の値 'HTTPURLResponseを呼び出せませんか?

func getNetworkImage(_ urlString: String, completion: @escaping ((UIImage) -> Void)) -> (ImageRequest) { 
    let queue = decoder.queue.underlyingQueue 
    let request = Alamofire.request(urlString) 
    let imageRequest = ImageRequest(request: request) 

    imageRequest.request.response(
     queue: queue, 
     responseSerializer: Request.imageResponseSerializer(), 
     completionHandler: { response in 
      guard let image = response.result.value else { 
       return 
      } 
      let decodeOperation = self.decodeImage(image) { image in 
       completion(image) 
       self.cacheImage(image, urlString: urlString) 
      } 
      imageRequest.decodeOperation = decodeOperation 
     } 
    ) 

    return imageRequest 
} 

答えて

0

エラーメッセージ:Cannot call value of non-function type 'HTTPURLResponse?'はインスタンス変数valueにアクセスできないことを語っています。悪い点は、間違ったコード行でこれを伝えていることです。それが見つけにくい理由がその理由かもしれません。

応答オブジェクトの構造が変更されました。あなたのコード:

guard let image = response.result.value else { 
      return 
} 

responseオブジェクトがタイプDefaultDataResponseであるため、もはや動作しませんではないあなたがアクセスしたいものに応じresponse.response.に行く必要があるデータ/画像にアクセスするためにはHTTPResponse...

response.response?.value(forKey: "") 

他のメソッド呼び出しとプロパティを確認してください。私はあなたが探しているデータを見つけると信じています。

+0

なぜdownvoteですか? – Darkwonder

+0

ありがとう、私はそれを調べます! – Giovanni

関連する問題