我的应用已下载应用内购买。当下载内容时,我现在将其存储在文档目录中。但我知道Apple是挑剔的,可能会拒绝我的应用程序,因为可以恢复的内容不应存储在文档目录中,这意味着,将保存到icloud。
我想过使用临时或缓存目录,但是当iOS需要空间时,这些目录都可以清空。
我应该在哪里保存?
答案 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)
如果要保留内容,Documents
文件夹就是移动内容的地方。
在iOS中,您的应用可以管理下载的文件。这些文件由Caches目录中的Store Kit框架保存,备份标志未设置。下载完成后,您的应用程序负责将其移动到适当的位置。对于在设备磁盘空间不足(以及稍后由应用程序重新下载)时可以删除的内容,请将文件保留在Caches目录中。否则,将文件移动到Documents文件夹并设置标志以将其从用户备份中排除。