iOS物理内存管理(文件缓存)
我正在文档目录中存储图像文件以进行文件缓存iOS物理内存管理(文件缓存),ios,memory-management,swift,Ios,Memory Management,Swift,我正在文档目录中存储图像文件以进行文件缓存 var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String var path = paths.stringByAppendingPathComponent(imagePath!) data.writeToFile(path, atomically: true) 当存储这么多文件时会发生什么?有自动交换吗?
var paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
var path = paths.stringByAppendingPathComponent(imagePath!)
data.writeToFile(path, atomically: true)
当存储这么多文件时会发生什么?有自动交换吗?或者我可以用代码检测它吗
注意:我不想使用tmp目录。没有自动刷卡机制来处理此类任务。它是用户数据,用户应该控制它,何时写入和何时删除。您可以在应用程序中编程此类任务。您需要决定是否需要
1.根据创建文件的天数或
2.检查目录中允许的最大文件数 每次启动应用程序时,都可以在后台运行此任务 您可以使用以下代码删除单个文件。检查这个 [[NSFileManager defaultManager]removeItemAtPath:pathToFile错误:&错误]
注意-我建议仔细研究一下哪个目录更适合你这就是我想要的。谢谢@gnasher729 将数据缓存文件放在Library/Caches/目录中。缓存数据可以用于任何需要比临时数据更持久的数据,但不能像支持文件那样持久。一般来说,应用程序不需要缓存数据才能正常运行,但它可以使用缓存数据来提高性能。缓存数据的示例包括(但不限于)数据库缓存文件和瞬态可下载内容。请注意,系统可能会删除缓存/目录以释放磁盘空间,因此您的应用程序必须能够根据需要重新创建或下载这些文件
你说的自动交换是什么意思?您希望使用哪个文件/图像进行交换?我相信您正在寻找某种机制,以便在一段时间间隔后删除这些文件。我说的对吗?是的,在一段时间间隔后删除文件可以防止对存储的不良使用。documents目录中的任何内容都不会被自动删除。还有其他的目录,比如缓存目录、临时目录。另一方面,这些东西可能会很快被删除。我认为与其寻找技术细节,不如先弄清楚你想要什么。正如我说的,我不想使用临时目录。应用程序关闭时正在清理。但我可以为此尝试缓存目录。