我有一个图像处理比较密集的iPhone应用程序,并且我希望将远程下载的图像本地存储在应用程序的沙箱tmp目录中,以避免不必要的网络请求。存储在应用程序目录中的文件的总大小是否受到限制,还是需要由应用程序来管理?应用程序将如何确定tmp目录中文件的大小?

另外,如果应用程序需要管理缓存的大小,我想实施某种缓存策略来确定哪些文件无效。我将如何去做呢?如果我要实现基本的LRU缓存策略(使最近最少使用的文件无效),则似乎需要存储每个映像的访问计数并将其存储在磁盘上,这看起来很时髦。我想一个简单的大小管理策略是在每次应用程序终止时完全擦除缓存。

另外,使用NSCachesDirectory中的目录与NSTemporaryDirectory之间的区别是什么?苹果的文档提到了两者,但是没有讨论使用哪种类型的文件。我认为NSTemporaryDirectory更像是Unix / var / tmp目录,用于可随时擦除的临时数据。在我看来,NSCachesDirectory更适合于存储缓存的图像,因为在多个应用程序生命周期中可能需要这些文件。

最佳答案

所有临时目录都在您的应用程序本地;它们中的任何一个都可以工作,其内容的大小没有人为限制。

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

关于iphone - 管理iPhone应用程序沙箱tmp目录大小以缓存图像,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3744611/

10-12 12:34
查看更多