gpt4 book ai didi

ios - 如何使用 HanekeSwift Swift 删除缓存?

转载 作者:行者123 更新时间:2023-11-28 08:34:27 24 4
gpt4 key购买 nike

我遇到了一个问题。我想用一些文本和可以更改的个人资料图片填充表格 View ,我为此使用了此功能。

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 的速度足以获取所有图像。但我想在每次 Controller 加载时清除缓存。

如有任何建议,我们将不胜感激!

中欧

最佳答案

我发现了一个问题。

首先,我运行的是旧版本的 pod。所以更新后我可以使用该功能。

Shared.imageCache.removeAll()

在将 haneke 导入 Controller 之后。

最后一段代码是这样的。 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
cell.profileImage.hnk_setImageFromURL(NSURL(string: self.userCollection[indexPath.row].profile_picture)!)
//deleting it from cache
Shared.imageCache.removeAll()
self.makeImageViewCircular(cell.profileImage.layer, cornerRadius: cell.profileImage.frame.height)
cell.profileImage.clipsToBounds = true

return cell
}

它现在可以工作了,但是在其他单元格被填充时一直删除缓存似乎有点矫枉过正。

关于ios - 如何使用 HanekeSwift Swift 删除缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38201426/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com