我遇到了一个问题。我想用一些文本和一个可以更改的配置文件图像填充一个表格视图,我为此使用了这个函数。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: CommonCellView!
cell = self.tableView.dequeueReusableCellWithIdentifier("CommonCellView") as! CommonCellView
cell.nameLabel.text = self.userCollection[indexPath.row].display_name
cell.companyLabel.text = self.userCollection[indexPath.row].user_organisation
cell.profileImage.hnk_setImageFromURL(NSURL(string: self.userCollection[indexPath.row].profile_picture)!)
self.makeImageViewCircular(cell.profileImage.layer, cornerRadius: cell.profileImage.frame.height)
cell.profileImage.clipsToBounds = true
return cell
}
这里没什么好惊讶的。但是,当我更改自己的个人资料图片时,我会将其发送到 API 并修改此功能,它会显示缓存的图像。所以我认为我可能会尝试一些不同的东西,为什么不使用 Alamofire 获取每个单元格的所有图像。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell: CommonCellView!
cell = self.tableView.dequeueReusableCellWithIdentifier("CommonCellView") as! CommonCellView
cell.nameLabel.text = self.userCollection[indexPath.row].display_name
cell.companyLabel.text = self.userCollection[indexPath.row].user_organisation
cell.profileImage.image = UIImage()
//getting the cell image
Alamofire.request(.GET, self.userCollection[indexPath.row].profile_picture)
.response {(request, response, avatarData, error) in
let img = UIImage(data: avatarData!)
cell.profileImage.image = img
}
self.makeImageViewCircular(cell.profileImage.layer, cornerRadius: cell.profileImage.frame.height)
cell.profileImage.clipsToBounds = true
return cell
}
这适用于用户非常快速滚动的程度,将显示不同用户的图像,直到请求得到满足。好吧,让这发生在其他地方,并为图像使用一个数组。我也试过了。但是因为它是异步的,所以图像会以错误的顺序进入数组。所以回到HanekeSwift。我阅读了文档,发现我在磁盘上有一个缓存,但我无法清除或删除它。
清除缓存我也试过: NSURLCache.sharedURLCache().removeAllCachedResponses()
但我什么也没做。它适用于 Alamofire 情况,但也不是一个好的解决方案。
我想使用 hanekeSwift,因为 HanekeSwift 足够快,可以获取所有图像。但我想在每次控制器加载时清除缓存。
任何建议,将不胜感激!
切斯