在哪里存储可下载的应用内购买?

时间:2013-02-09 16:46:33

标签: iphone ios ipad in-app-purchase

我的应用已下载应用内购买。当下载内容时,我现在将其存储在文档目录中。但我知道Apple是挑剔的,可能会拒绝我的应用程序,因为可以恢复的内容不应存储在文档目录中,这意味着,将保存到icloud。

我想过使用临时或缓存目录,但是当iOS需要空间时,这些目录都可以清空。

我应该在哪里保存?

3 个答案:

答案 0 :(得分:6)

Documents目录只能用于无法下载的用户生成数据(包括包含用户可选设置等的潜在数据库),所以你说得对,如果存储可下载,你可能会被拒绝内容。

我这样做的方法是将下载的数据存储在Cache中(正如您所说,当空间不足时可以随时清除),并在{{1}中存储一小段数据这表示内容应该Documents中。如果Cache表示数据应该在那里而不是,我会通知用户由于空间问题,iOS已自动删除了该内容,并允许用户再次下载。

这样,如果用户暂时不使用该内容,他可以将其设备上的空间重用于其他内容,并且仍然可以随意再次下载该内容。就像我想要一个应用程序一样,如果我是用户:)

编辑:如果您需要将它们永久保留,可以将它们放在Documents中,但请记住将它们标记为not backed up to iCloud,否则您很可能会获得同样的拒绝。

答案 1 :(得分:0)

我还看到文档文件夹是针对用户生成的内容,并且建议使用缓存文件夹,尽管您的数据可以在需要时删除。我还读到,在定位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

答案 2 :(得分:0)

此处的文档https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitGuide/Chapters/DeliverProduct.html#//apple_ref/doc/uid/TP40008267-CH5-SW5

如果要保留内容,Documents文件夹就是移动内容的地方。

  

在iOS中,您的应用可以管理下载的文件。这些文件由Caches目录中的Store Kit框架保存,备份标志未设置。下载完成后,您的应用程序负责将其移动到适当的位置。对于在设备磁盘空间不足(以及稍后由应用程序重新下载)时可以删除的内容,请将文件保留在Caches目录中。否则,将文件移动到Documents文件夹并设置标志以将其从用户备份中排除。