【发布时间】:2018-04-24 07:56:07
【问题描述】:
我正在使用Alamofire 将图像设置到tableViewCell
let messageImage = cell?.viewWithTag(6) as! UIImageView
messageImage.image = nil
messageImage.af_setImage(withURL: photoUrl! as URL)
return cell
我正在使用 Firebase 将每个单元格项附加到一个数组中:
ref.child("messages").child(ticker.current).queryOrderedByKey().observe(.childAdded, with: {snapshot in
let snapDict = snapshot.value as? NSDictionary
let photoUrl = snapDict?["photo_url"] as? String ?? ""
messageArray.insert(messageCellStruct(photoUrl: photoUrl), at: 0)
})
然后我将 Same Exact URL 上的图片更新为 FirebaseStorage
当我重新调用TableViewCell 所在的单元格ViewController 时,前几个单元格上的图像没有改变。但是当我滚动到旧单元格时,图像会更新:
messageArray.removeAll()
tableView.reload()
如果我重新构建应用程序,所有单元格图像都是应有的样子。
我假设这是因为观察者错误或我没有删除观察者。我真的不知道。
1.) 单元格共享完全相同的 URL,只是更改了数据。
2.) 它似乎只在尚未加载(或分配)单元格时才起作用。
3.) 在我重建并运行应用程序后,它工作得非常好。
也许我需要清除 Alamofire 缓存?
【问题讨论】: