何时从NSCachesDirectory中删除文件

时间:2014-09-06 08:00:34

标签: ios

我正在开发一个新闻应用程序。我正在使用NSCacheDirectory保存到图像。我想知道何时应该从现金中删除图像。我知道我可能会在收到内存警告时删除它(或者它会在内存不足的情况下自动删除)但是我不明白为什么要保留图像这么久并且只有在我收到内存警告时才删除它们。我还试图检查NSCashDirectory中保存的所有图像是否都在我获取的数据中(来自互联网),如果没有,则删除它,但我确信性能是个问题。有没有办法在特定时间间隔后清理现金

P.S。我是iOS编程的新手。

1 个答案:

答案 0 :(得分:0)

由于您正在开发新闻应用程序,我将假设新闻将在一定时间间隔内更新。这意味着您可以为存储在设备上的文章定义生命周期。所以你可以做的就是每天都说,所有超过七天的文章都可以记录下来。然后,当它安全时(应用程序启动或用户正在阅读新内容),您可以删除所述内容。

我不了解您的观众,但传统上可以安全地假设人们不会多次阅读同一篇文章,因此您绝对可以让您的陈旧内容窗口非常小。

如果你实施书签设施,你也可以用类似的方式来解决这个问题。例如,您可以假设用户很可能会与最近添加书签的文章进行交互。请记住,在此新近度由用户定义而不是文章日期。最近由用户添加书签的文章可能比旧版更有可能被阅读或共享。

您还可以在设置中选择用户可以选择删除所有缓存的内容。由于您的内容应该存在于服务器上,因此用户无法获取旧内容。

就您而言,每篇文章都可以分解为文章映射和文章。文章映射应包含最少的信息,以允许在文章提要中显示内容(如标题,缩略图URL等)。您的文章将包含所有内容。当用户请求删除所有缓存数据时,您可以删除所有图像并保留设备上的所有映射(至少是最新的映射)。

快乐编码