gpt4 book ai didi

IOS 在离开 Controller 时删除缓存 - kingfisher

转载 作者:行者123 更新时间:2023-11-30 12:21:29 26 4
gpt4 key购买 nike

我使用 kingfisher 从 tableview 中的 url 加载图片。在我的 Controller 中,我有一个用于显示图片的表格 View ,一个用于使用新图片重新加载表格 View 的“下一步”按钮,以及一个从该 View Controller 转到主视图 Controller 的“主页”按钮。

我使用这种代码来加载图片:

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 中,但没有任何反应。

这是我仅使用下一个按钮时的内存使用情况: enter image description here

这是我的主页按钮问题,然后用图片重新加载我的 Controller ,然后再次点击主页按钮等: enter image description here

你看出什么问题了吗?

谢谢,

最佳答案

兑现的图像不是在内存中兑现,而是在磁盘中的物理位置兑现因此,如果清除内存缓存,您将不会检测到任何内存更改,不用担心它工作正常。

如果您希望将其兑现到内存中,则必须使用它。

///如果设置,Kingfisher 只会将值缓存在内存中,而不缓存在磁盘中。

case cacheMemoryOnly

查看此链接 https://github.com/onevcat/Kingfisher/blob/master/Sources/KingfisherOptionsInfo.swift

关于IOS 在离开 Controller 时删除缓存 - kingfisher,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44741805/

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