iOS - 为应用程序保留最小可用磁盘量 space
iOS - Reserve a minimum amount of free disk space for an app
我的应用程序必须确保始终有最低数量(可能是 5-10 MB)的可用磁盘 space 可用,才能正常运行。我必须将重要数据保存到文件中,否则一切都会被破坏。
主要问题是:如果用户下载了我的应用程序并且他正好有应用程序所需的可用磁盘空间 space 怎么办(没有我在第一次启动时创建的数据)
当他现在启动应用程序时,我尝试做一些初始设置 - 在这里我必须写入大约 2-3 MB 的文件,而且这个 space 必须是免费的。
我该怎么做才能实现这一目标?
简而言之,你不能。您将需要编写代码以进行初始启动,以检查是否有足够的磁盘 space 来进行初始设置,如果没有则显示错误。我之前没有尝试在 iOS 上执行此操作,所以我不确定沙箱允许您做什么。我必须去阅读 iOS 文件系统文档。这就是我建议你做的。
你可以做两件事:
首先,当您的应用程序启动时,您可以使用 NSFileManager.attributesForFilesystemofPath:
找出可用的 space。如果 space 的数量很低(并且 5 MB 可用空间 非常低 ,您可以警告用户,甚至可能拒绝在您的应用中启动需要此可用空间的操作 space.
其次,您可以创建一个临时文件。如果您知道您需要 5MB 的存储空间,那么也许您可以分配一个 5MB 的文件并将该文件用于您的存储空间。
您没有指定需要在磁盘上存储的内容,但如果它是例如一个文件,那么您可以将此数据写入 5MB 的暂存文件而不是打开一个新文件。
这需要一些额外的簿记,但您确实可以保证 space 您的数据。
我的应用程序必须确保始终有最低数量(可能是 5-10 MB)的可用磁盘 space 可用,才能正常运行。我必须将重要数据保存到文件中,否则一切都会被破坏。
主要问题是:如果用户下载了我的应用程序并且他正好有应用程序所需的可用磁盘空间 space 怎么办(没有我在第一次启动时创建的数据)
当他现在启动应用程序时,我尝试做一些初始设置 - 在这里我必须写入大约 2-3 MB 的文件,而且这个 space 必须是免费的。
我该怎么做才能实现这一目标?
简而言之,你不能。您将需要编写代码以进行初始启动,以检查是否有足够的磁盘 space 来进行初始设置,如果没有则显示错误。我之前没有尝试在 iOS 上执行此操作,所以我不确定沙箱允许您做什么。我必须去阅读 iOS 文件系统文档。这就是我建议你做的。
你可以做两件事:
首先,当您的应用程序启动时,您可以使用 NSFileManager.attributesForFilesystemofPath:
找出可用的 space。如果 space 的数量很低(并且 5 MB 可用空间 非常低 ,您可以警告用户,甚至可能拒绝在您的应用中启动需要此可用空间的操作 space.
其次,您可以创建一个临时文件。如果您知道您需要 5MB 的存储空间,那么也许您可以分配一个 5MB 的文件并将该文件用于您的存储空间。
您没有指定需要在磁盘上存储的内容,但如果它是例如一个文件,那么您可以将此数据写入 5MB 的暂存文件而不是打开一个新文件。
这需要一些额外的簿记,但您确实可以保证 space 您的数据。