gpt4 book ai didi

ios - 有没有办法刷新 UIImage 类使用的缓存?

转载 作者:行者123 更新时间:2023-11-28 21:33:42 26 4
gpt4 key购买 nike

在我的 iOS 应用程序中,我使用 +imageNamed: 方法加载图像(多次在代码中的许多不同位置)。在一种情况下,用户可能会更新(下载)新图像。当我尝试加载新的时,由于缓存,它会显示旧的。从“Is there a way to clear the cache used by UIImage class?”问题中,我看到我必须使用 -initWithContentsOfFile: 方法。

但这不会利用 +imageNamed: 享有的缓存加速。我只想“告诉”文件已更改的缓存,因此它需要“重新缓存”。然后继续对新的缓存图像使用 +imageNamed: 方法。

换句话说,我使用了 +imageNamed: 方法(比如说)10 次,我更改了图像,我“告诉”缓存,然后我继续使用 +imageNamed: 另一种方法(比方说)10 次。如果我将所有 +imageNamed: 更改为 -initWithContentsOfFile: 那么我就失去了缓存优势。

有什么方法/技巧可以做到这一点吗?

最佳答案

没有用于清除缓存的 API。如果您的应用不是面向应用商店的,您可以调用private 方法:

[UIImage _flushSharedImageCache];

但是我不希望它出现在生产代码附近。

相反,我会在 UIImage 上创建一个类别,并添加一个从文件名返回所需图像的方法。下载新图像时将存储并更新此名称。您将获得缓存的好处,而无需任何棘手的解决方法。

根据项目的复杂性,简单的查找和替换应该不会花费太长时间。

虽然我现在质疑您的应用程序目前的工作方式,但 imageNamed 仅查找您应用程序包中的文件,因此不适用于用户下载的图像。

关于ios - 有没有办法刷新 UIImage 类使用的缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34792127/

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