无法调用非函数类型 HTTPURLResponse 的值?

Posted

技术标签:

【中文标题】无法调用非函数类型 HTTPURLResponse 的值?【英文标题】:Cannot call value of non-function type HTTPURLResponse? 【发布时间】:2016-10-09 04:26:16 【问题描述】:

我正在使用 Swift 3 中的 Alamofire 4。

我收到一个错误提示

不能调用非函数类型HTTPURLResponse的值?

我正在尝试下载图像并将其存储在缓存中,下面是我的代码,有人可以帮忙吗?

            request = Alamofire.request(post.imageUrl!).validate(contentType: ["image/*"]).response(completionHandler:  request,data, err  in


                if err == nil 
                    let image = UIImage(data: data!)!
                    self.showcaseImage.image = image
            FeedVC.imageCache.setObject(image, forKey: self.post.imageUrl!)

                
            )

我发现我必须将顶部更改为仅 .response。但是当我这样做时,我不能去 if err == nil bloc 并将图像设置为数据。有没有办法解决这个问题。代码如下。

request = Alamofire.request( post.imageUrl!).validate(contentType: ["application/json"]).response  response in
                debugPrint(response)

                if error == nil 
                    let image = UIImage(data: data!)!

一切顺利 托尼

【问题讨论】:

你检查过this吗? 【参考方案1】:

我查看了文档并能够解决这个问题。通过将代码更改为。

  request = Alamofire.request(post.imageUrl!).validate(contentType: ["image/*"])
                .response  response in

                print(response.error)

                if response.error == nil 
                    let image = UIImage(data: response.data!)!

我写了 response.error 和 response.data,这与调用 request, response, data, error 相同,解决了我继续处理错误和数据的问题。

【讨论】:

以上是关于无法调用非函数类型 HTTPURLResponse 的值?的主要内容,如果未能解决你的问题,请参考以下文章

无法调用非函数类型“HTTPURLResponse?”的值

Alamofire 4:无法调用非函数类型“HTTPURLResponse?”的值

无法调用非函数类型“HTTPURLResponse?”的值- 阿拉莫菲尔 4.0

无法调用非函数类型“HTTPURLResponse?”的值阿拉莫菲尔 4,斯威夫特 3

Swift 3.0 迁移后的 Alamofire 错误:“无法将 '(URL, HTTPURLResponse)-> (URL)' 类型的值转换为预期的参数类型 'Parameters'”?

无法调用非函数类型“URL”的值