【发布时间】:2016-09-16 05:41:57
【问题描述】:
我很难在这里想出一个好的解决方案。因此,在我的应用程序中,我有一个加载用户数据的 UITableView,并且每个单元格都有一个个人资料图像 UIImageView。因此,每次循环遍历单元格时,它都会为每个用户单独下载个人资料图片。出于这个原因,我开始使用 NSCache 来存储个人资料图片。这非常有效,现在滞后消失了。
但是,如果有人更改了他们的个人资料图片怎么办?个人资料图片上传到后端每个用户一张。我使用用户 ID 来引用这些个人资料图片。如果有人更改了他们的个人资料图片,它只会加载我在缓存中的图像,而不是他们的新图像。因此,我希望每 3 小时左右清除一次 IOS 设备上的整个缓存。那将治愈一切。你如何每隔一段时间清除整个 NSCache?
TL;DR:
如何按时间间隔清除应用程序的整个 NSCache? (例如:每 3 小时清除一次应用缓存)
【问题讨论】:
-
我认为更改您的后端图像 id 比清除应用程序中的缓存更有效,如果您清除,那么其他用户数据也会被清除,并且不会有太多用户使用该应用程序 3连续几个小时
-
@Tj3n 我只是在缓存个人资料图片!所有其他信息都是实时下载的
-
我知道你只缓存个人资料图片并每次都获取新数据,这就是为什么我说更改图像ID更好,因为你不需要清除缓存并且仍然知道要下载的新图像ID它改变了