iOS物理内存管理(文件缓存)

时间:2014-10-25 11:22:02

标签: ios memory-management swift

我将图像文件存储在Documents目录中以进行文件缓存。

var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
var path = paths.stringByAppendingPathComponent(imagePath!)
data.writeToFile(path, atomically: true)

存储这么多文件会发生什么?有自动交换吗?或者我可以用代码检测它吗?

注意:我不想使用tmp目录。

2 个答案:

答案 0 :(得分:1)

这就是我想要的。谢谢@ gnasher729。

  

将数据缓存文件放在Library / Caches /目录中。缓存数据可用于需要比临时数据持续更长时间的任何数据,但不能与支持文件一样长。一般来说,应用程序不需要缓存数据正常运行,但它可以使用缓存数据来提高性能。高速缓存数据的示例包括(但不限于)数据库高速缓存文件和瞬态可下载内容。请注意,系统可能会删除Caches /目录以释放磁盘空间,因此您的应用必须能够根据需要重新创建或下载这些文件。

答案 1 :(得分:0)

没有自动滑动机制来处理此类任务。它的用户数据和用户应该控制它,何时写入以及何时删除。您可以在应用程序中编写此类任务。你需要决定你是否想要 1.根据文件创建日期或天数进行检查 2.检查目录中允许的最大文件数是否为。

每次启动应用程序时,您都可以在后台运行此任务。

您可以使用以下代码删除单个文件。请检查此Question

  

[[NSFileManager defaultManager] removeItemAtPath:pathToFile error:& error];

注意 - 我建议您通过iOS Data Storage Guidelines找出最适合您的目录