从bundle复制只读数据文件的位置?

时间:2011-12-30 02:10:27

标签: ios core-data

我有点困惑。我在包中包含了一个不会被用户修改的Core Data文件。在我开始将文件复制到/ Documents之后,Apple拒绝了我的应用程序(由于新的iCloud要求),所以我现在将文件复制到/ Library / myprivatedir /

问题是为什么我需要首先复制到/ Library。毕竟留在Bundle有什么问题?

2 个答案:

答案 0 :(得分:1)

略读iOS Data Storage Guidelines的文档(需要苹果ID)我发现了这个

  

...可以再次下载或重新生成的数据应存储在<Application_Home>/Library/Caches目录中。您应该放在Caches目录中的文件示例包括数据库缓存文件和可下载内容,例如杂志,报纸和地图应用程序使用的文件。

因为它很容易再生,所以可能会对它产生影响。

如果你有一个读/写数据库场景

,那么几点可能会有用
  

...使用“不备份”属性来指定应保留在设备上的文件,即使在低存储情况下也是如此。将此属性与可以重新创建的数据一起使用,但即使在低存储情况下也需要保留,以使应用程序正常运行,或者因为客户希望在脱机使用期间可以使用该数据。此属性适用于标记文件,无论它们位于何种目录中,包括Documents目录。这些文件不会被清除,也不会包含在用户的iCloud或iTunes备份中。由于这些文件确实使用了设备上的存储空间,因此您的应用程序负责定期监视和清除这些文件。

答案 1 :(得分:1)

从捆绑包中打开Core Data存储没有任何问题。请务必将NSReadOnlyPersistentStoreOption作为选项的一部分传递给-addPersistentStoreWithType:configuration:URL:options:error: