【发布时间】:2013-01-25 06:22:28
【问题描述】:
我的应用有可下载的应用内购买。下载内容后,我现在将其存储在文档目录中。但我知道 Apple 很挑剔,可能会拒绝我的应用,因为可以恢复的内容不应该存储在文档目录中,这意味着将保存到 icloud。
我曾想过使用临时目录或缓存目录,但是当 iOS 需要空间时,这些目录可以随时清空。
我应该把它保存在哪里?
【问题讨论】:
标签: iphone ios ipad in-app-purchase
我的应用有可下载的应用内购买。下载内容后,我现在将其存储在文档目录中。但我知道 Apple 很挑剔,可能会拒绝我的应用,因为可以恢复的内容不应该存储在文档目录中,这意味着将保存到 icloud。
我曾想过使用临时目录或缓存目录,但是当 iOS 需要空间时,这些目录可以随时清空。
我应该把它保存在哪里?
【问题讨论】:
标签: iphone ios ipad in-app-purchase
Documents 目录只能用于无法下载的用户生成数据(包括包含用户可选设置和类似设置的潜在数据库),所以你是对的,如果你在那里存储可下载的内容,你可能会被拒绝.
我这样做的方法是将下载的数据存储在Cache中(正如您所说,在空间不足时可以随时清除),并将一小段数据存储在Documents中,上面写着内容应该在Cache。当Documents说数据应该在,数据不在时,我会通知用户由于空间问题,内容已被iOS自动删除,并提供用户重新下载。
这样,如果用户暂时不使用内容,他可以将设备上的空间重新用于其他事情,并且仍然可以随意再次下载内容。就像如果我是用户,我希望应用程序可以工作:)
编辑:如果您需要它们始终保持不变,您可以将它们放入Library,但请记住将它们标记为not backed up to iCloud,否则您很可能会遭到同样的拒绝。
【讨论】:
我还阅读了文档文件夹是用于用户生成的内容,并且尽管可以在需要时删除您的数据,但仍建议使用缓存文件夹。我还读到,当面向 ios 5.1 及更高版本时,可以选择使用带有无备份标志的文档文件夹。
看 iOS 5.0.1 : How to verify that the folder is marked as "Do not back up" for iCloud?
Adding the "Do Not Backup" attribute to a folder hierarchy in iOS 5.0.1
【讨论】:
表示如果您希望内容保留,Documents 文件夹是移动内容的地方。
在 iOS 中,您的应用可以管理下载的文件。这些文件由 Store Kit 框架在未设置备份标志的情况下保存在 Caches 目录中。下载完成后,您的应用程序负责将其移动到适当的位置。对于在设备磁盘空间不足时可以删除的内容(稍后由您的应用重新下载),请将文件保留在 Caches 目录中。否则,请将文件移动到 Documents 文件夹并设置标志以将它们从用户备份中排除。
【讨论】: