是的,我知道。此问题已在Where to store the Core Data file?和Store coredata file outside of documents directory?中得到回复。
@Kendall Helmstetter Gelner和@Matthias Bauch提供了非常好的回复。我赞成他们。现在我的问题非常概念化,我会尝试解释它。
Apple文档中的Where You Should Put Your App’s Files section,我读过以下内容:
处理支持文件 - 应用程序下载或生成的文件 可以根据需要重新创建 - 有两种方式之一:
在iOS 5.0及更早版本中,将支持文件放在/ Library / Caches目录中以防止它们出现 备份
在iOS 5.0.1及更高版本中,将支持文件放在/ Library / Application Support目录中并应用
com.apple.MobileBackup
扩展了属性。这个属性 防止文件备份到iTunes或iCloud。如果你 有大量的支持文件,您可以将它们存储在自定义中 子目录并将扩展属性应用于目录。
Apple表示,为了处理支持文件,您可以根据已安装的iOS采用两种不同的方式。在我看来(但也许我错了)核心数据文件是一个支持文件,所以它属于这些类别。
这样说,Matthias和Kendall的方法是否继续有效?特别是,如果我在 Library 文件夹中创建一个目录,例如 Private ,该目录是否继续在iOS 5版本(5.0和5.0.1)中保持隐藏状态或者我需要遵循Apple解决方案吗?如果后者有效,您能提供任何样本或链接吗?
提前谢谢。
答案 0 :(得分:1)
我会说Core Data文件实际上并不是一个支持文件 - 除非你有办法复制存储的数据,否则你需要备份它。
支持文件更像是图像,或者只是远程网站缓存的数据库。
因此,您可以继续将Core Data数据库放在您喜欢的位置(尽管它应该位于Application Support下)。
截至2013年1月的最新添加:Apple已开始处理从捆绑包复制到可写区域的预加载CoreData数据存储,就像它们是支持文件一样 - 即使您将用户数据写入相同的数据库也是如此。解决方案(来自DTS)是为了确保在将数据库复制到位时,设置do-not-backup标志,然后在用户数据写入数据库时取消设置。
如果你的CoreData商店纯粹是下载的网络数据的缓存,请继续确保它在某个地方如Caches或设置了Do Not Backup标志。