我的应用有可下载的应用内购买。下载内容后,我现在将其存储在文档目录中。但我知道 Apple 很挑剔,可能会拒绝我的应用程序,因为可以恢复的内容不应该存储在文档目录中,这意味着将保存到 icloud。
我想过使用临时目录或缓存目录,但是当 iOS 需要空间时,这些目录可以随时清空。
我应该把它保存在哪里?
我的应用有可下载的应用内购买。下载内容后,我现在将其存储在文档目录中。但我知道 Apple 很挑剔,可能会拒绝我的应用程序,因为可以恢复的内容不应该存储在文档目录中,这意味着将保存到 icloud。
我想过使用临时目录或缓存目录,但是当 iOS 需要空间时,这些目录可以随时清空。
我应该把它保存在哪里?
该Documents
目录只能用于无法下载的用户生成数据(包括包含用户可选设置和类似设置的潜在数据库),所以您是对的,如果您将可下载的内容存储在那里,您可能会被拒绝。
我这样做的方式是将下载的数据存储在Cache
其中(正如您所说,在空间不足时可以随时清除),并在其中存储一小段数据Documents
,表示内容应该在Cache
. 当Documents
说数据应该存在而不存在时,我会通知用户由于空间问题,该内容已被 iOS 自动删除,并提供用户重新下载。
这样,如果用户暂时不使用该内容,他可以将其设备上的空间用于其他事情,并且仍然可以随意再次下载该内容。就像如果我是用户我想要一个应用程序工作一样:)
编辑:Library
如果您需要它们始终保持不变,您可以将它们放入,但请记住将它们标记为未备份到 iCloud,否则您很可能会遭到同样的拒绝。
我还阅读了文档文件夹用于用户生成的内容,并且建议使用缓存文件夹,尽管您的数据可以在需要时删除。我还读到,当面向 ios 5.1 及更高版本时,可以选择使用带有无备份标志的文档文件夹。
说Documents
文件夹是移动内容的地方,如果你想让它持久存在的话。
在 iOS 中,您的应用可以管理下载的文件。这些文件由 Store Kit 框架在未设置备份标志的情况下保存在 Caches 目录中。下载完成后,您的应用程序负责将其移动到适当的位置。对于在设备磁盘空间不足时可以删除的内容(稍后由您的应用重新下载),请将文件保留在 Caches 目录中。否则,将文件移动到 Documents 文件夹并设置标志以将它们从用户备份中排除。