0

所以我有点卡在这里。我有一个移动应用程序,它有一个使用 TableView 的“提要”,它填充了来自 firebase 的图片、描述和喜欢。我将 ImageShack 用于图像上传 API,并从那里抓取 imgLinks(使用 alamofire)。图片正在上传,在我的 ImageShack 面板上,图片看起来很棒。所以我知道这不是firebase,也不是imageshack的错,但大多数图片甚至都无法加载,它们只是白框,我可以确认imageUrl!= nil,所以这绝对是Alamofire的请求问题。
这是我的 Alamofire GET 请求代码
,如果 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 的获取请求有关.. 它是什么:(

4

1 回答 1

0

我想我知道问题出在哪里,因为我连续几天都被困住了。我认为您正在使用自定义 tableViewCell VC,并且在绑定数据的函数中您放置了如下内容:

self.deckImg.image = nil

然后检查是否有缓存图像,如果在检查 post.imageUrl != nil {} 后没有使用 alamofire 下载它,则必须取消隐藏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
}
于 2016-07-19T21:40:45.840 回答