管理iPhone应用程序沙箱tmp目录大小以缓存图像

我有一个相当图像密集的iPhone应用程序,我希望在应用程序的沙箱tmp目录中本地存储远程下载的图像,以避免不必要的网络请求.存储在应用程序目录中的文件总大小是否有限制,或者应用程序是否需要管理该文件?应用程序如何确定tmp目录中文件的大小?

此外,如果应用程序需要管理缓存的大小,我想实现某种缓存策略来确定哪些文件失效.我该怎么做呢?如果我想实现一个基本的LRU缓存策略 – 使最近最少使用的文件无效 – 似乎我需要存储每个图像的访问计数并将其存储在磁盘上,这似乎有点时髦.我想一个简单的大小管理策略就是在每次应用程序终止时简单地擦除缓存.

另外,使用NSCachesDirectory和NSTemporaryDirectory的目录有什么区别? Apple文档提到了两者,但没有谈论哪一种用于什么类型的文件.我认为NSTemporaryDirectory更像是一个Unix / var / tmp目录,用于可以随时消除的短暂数据.在我看来,NSCachesDirectory更适合存储缓存的图像,因为跨多个应用程序生命周期可能需要这些文件.

最佳答案 所有临时目录都是应用程序的本地目录;它们中的任何一个都可以工作,并且它们的内容大小没有人为限制.

持久LRU缓存策略应该足够且相对容易实现.

点赞