所以我有点被困在这里。我有一个移动应用程序,使用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的获取请求有关。它是什么:(
答案 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
}