iOS - 为应用保留最少的可用磁盘空间

时间:2015-03-05 23:47:04

标签: ios objective-c diskspace

我的应用必须确保始终有最小数量(可能是5-10 MB)的可用磁盘空间,以便正常运行。我必须将重要数据保存到文件中,否则一切都会被破坏。

主要问题是:如果用户下载了我的应用程序并且他确实拥有了他应用所需的可用磁盘空间(没有我在首次启动时创建的数据),该怎么办?

当他现在启动应用程序时,我尝试做一些初始设置 - 在这里我必须写2-3 MB文件,这个空间必须是免费的。

我能做些什么来实现这个目标?

2 个答案:

答案 0 :(得分:2)

你可以做两件事:

首先,当您的应用程序启动时,您可以使用NSFileManager.attributesForFilesystemofPath:找到可用空间。如果空间量较低(并且5 MB空闲非常低,您可以警告用户,甚至可能拒绝在您的应用中启动需要此可用空间的操作。

其次,您可以创建一个临时文件。如果您知道需要5MB存储空间,那么您可以分配5MB文件并将该文件用于存储。

您没有指定需要存储在磁盘上的内容,但如果它是一个文件,那么您可以通过5MB暂存文件写入此数据,而不是打开新文件。

这需要一些额外的簿记,但您确实可以获得数据空间。

答案 1 :(得分:1)

简而言之,你不能。您需要编写代码以进行初始启动,检查是否有足够的磁盘空间来执行初始设置,如果没有则显示错误。我还没有尝试过在iOS上这样做,所以我不确定沙盒是什么让你能够做到这一点。我必须在iOS文件系统文档中阅读。这就是我建议你做的事。