存储购买内容和导出数据的位置

时间:2014-09-14 06:29:52

标签: ios storage

我正在处理的应用程序通常使用Core Data中的单个SQL存储来保存应用程序的工作数据集。但是,可以有任意数量的小型独立商店,这些商店起源于

  • 应用内购买的内容,或
  • 导出的工作数据集的子集,可以不时重复使用。

这些将始终包含一个sqlite文件(WAL已关闭)。可以随时重新下载应用内购买,但导出的数据可能会永久丢失(因为他们可能会选择在导出后永久删除数据)。

直观地说,由于导出的数据可能无法重新创建,因此它应该位于documents文件夹的子目录中。但我不确定苹果是否同意这一点。

我不知道应该保存下载的所购内容的位置,因为从技术上讲,它可以随时重新下载。

所以,我的问题是,我应该在iOS文件系统中放置这些(iOS7及更高版本)。

1 个答案:

答案 0 :(得分:1)

没有关于通过IAP购买的内容应该在文件系统上的哪些内容的官方公开指导。但是,数据存储指南反馈的经验表明:

  • NSDocumentsDirectory应仅包含用户创建或编辑的数据
  • (部分)如果设置了NSDocumentsDirectory属性,非用户数据仍然可以存储在NSURLIsExcludedFromBackupKey中。一般来说,你应该尽量避免这样做。
  • 应用内购买内容被视为"可恢复的应用数据"并应相应地存储。应用程序支持目录是可以存储它的地方。

如果导出的数据是由用户启动的操作导出的,那么此时的数据属于"对于用户,将导出的数据存储在NSDocumentsDirectory中应该没问题。如果您有任何疑问,请将其存储在应用程序支持目录或缓存目录中。请注意,在低空间条件下,系统可能会清除数据。