我使用翠鸟在桌面视图中加载来自网址的图片。在我的控制器中,我有一个用于显示图片的tableview,一个用于重新加载带有新图片的tableview的“next”按钮,以及一个从该视图控制器转到主视图控制器的“home”按钮。
我使用这种代码加载图片:
cell.imageInTableCell?.kf.setImage(with: url)
当我点击下一个按钮更新图片时清除我的缓存:
ImageCache.default.removeImage(forKey: photoUrl1)
它工作正常,我可以在记忆中看到起伏不定。
我的问题是当我点击主页按钮时尝试清除缓存。我使用的代码如下:
ImageCache.default.removeImage(forKey: photoUrl1)
或者:
let cache = KingfisherManager.shared.cache
cache.clearMemoryCache()
cache.clearDiskCache()
cache.cleanExpiredDiskCache()
或者:
ImageCache.default.clearMemoryCache()
ImageCache.default.clearDiskCache()
ImageCache.default.cleanExpiredDiskCache()
它不起作用,我没有看到我的记忆使用减少。我将这些代码放在带有touchUpInside事件的IBAction中,在prepareForSegue和didReceiveMemoryWarning中,但没有任何反应。
这是我的主页按钮的问题然后用图片重新加载我的控制器然后再次点击主页按钮等:
你看到了什么问题吗?
谢谢,
答案 0 :(得分:0)
如果你想让它在内存中兑现,你必须使用它。
///如果设置,Kingfisher
只会将值缓存在内存中,而不会缓存在磁盘中。
case cacheMemoryOnly
请参阅此链接https://github.com/onevcat/Kingfisher/blob/master/Sources/KingfisherOptionsInfo.swift