我在努力想出一个很好的解决方案。因此,在我的应用程序中,我有一个加载用户数据的UITableView,每个单元格都有一个配置文件图像UIImageView。因此,每次它在单元格中循环时,它都会为每个用户分别下载配置文件图片。因此,我开始使用NSCache来存储配置文件图片。这起了很大的作用,现在这种滞后已经消失了。
但是,如果有人更改了他们的个人资料图片呢?配置文件图片上传到后端,每个用户一张。我使用用户ID来引用这些配置文件图片。如果有人更改他们的配置文件图片,它将只是加载我在缓存中的图像,而不是他们的新图像。所以,我想让IOS设备上的整个缓存被清除一次,大约每3小时一次。能治好一切。如何隔一段时间清除整个NSCache?
TL;DR:
我如何在时间间隔内清除整个NSCache的应用程序?(例如:每3小时清除一次应用程序缓存)
发布于 2016-09-16 05:53:41
您可以使用app委托方法,并在每次用户进入应用程序前景时实现一次检查。您可以保留一个变量,该变量保存用户上次打开应用程序的时间,如果当前时间是3个小时后,则清除缓存。
如评论中所述,大多数用户不会有3个小时的会话。
顺便提一句:大多数用户可能会理解图片没有立即更新,例如,我知道twitter需要一段时间才能更新。在我的应用程序中,只要应用程序完全退出,我就不需要缓存,而是重新下载所有图像。如果在将图像放在服务器上之前对其进行压缩,这不会对数据使用造成不良影响。
https://stackoverflow.com/questions/39524422
复制相似问题