无法使用Alamofire检索图像,某些图像加载,有些图像不加载(SWIFT)

时间:2016-07-19 17:46:58

标签: iphone swift firebase alamofire imageshack

所以我有点被困在这里。我有一个移动应用程序,使用TableView有一个“提要”,它上面填充了来自firebase的图片,描述和喜欢。我使用ImageShack作为图像上传API,并从那里抓取imgLinks(使用alamofire)。图像正在上传查找,在我的ImageShack面板上,图片看起来很棒。所以我知道它不是firebase,而不是imageshack的错,但是大多数图片都不会加载,它们只是白盒子,我可以确认imageUrl!= nil,所以这绝对是Alamofire的请求问题。
这是我的Alamofire GET请求代码
          if post.imageUrl!= nil {

        if img != nil {
            self.deckImg.image = img
        } else {

            request = Alamofire.request(.GET, post.imageUrl!).validate(contentType:     ["image/*"]).response(completionHandler: { request, response, data, err     in
                if err == nil {
                    let img = UIImage(data: data!)!
                    self.deckImg.image = img
                    FeedController.imageCache.setObject(img, forKey: self.post.imageUrl!)
                } else {
                    print(err.debugDescription)
                }
            })
        }
    } else {
        self.deckImg.hidden = true

    }

另外,我可以确认它没有隐藏图像,因为当self.deckImg.hidden = true时,我有行调整高度,我也可以看到它从未调用过,因为它甚至从未触及该断点。所以它只是与Alamofire的获取请求有关。它是什么:(

1 个答案:

答案 0 :(得分:0)

我想我知道这是什么问题,因为我被困了好几天。 我认为你使用的是自定义tableViewCell VC,并且在函数中绑定了你输入的数据:

self.deckImg.image = nil

然后检查是否有缓存图像,如果没有使用alamofire下载它 检查post.imageUrl!= nil {}后,你必须取消隐藏 self.deckImg:

if post.imageURL != nil
{
    self.deckImg.hidden = false

    if img != nil 
    {
        self.deckImg.image = img
    } 
    else 
    {
        request = Alamofire.request(.GET, post.imageUrl!).validate(contentType:     ["image/*"]).response(completionHandler: { request, response, data, err     in
            if err == nil {
                let img = UIImage(data: data!)!
                self.deckImg.image = img
                FeedController.imageCache.setObject(img, forKey: self.post.imageUrl!)
            } else {
                print(err.debugDescription)
            }
        })
    }
}
 else
{
    self.deckImg.hidden = true
}