2

是的,我知道。这个问题已经在哪里存储核心数据文件?并在文档目录之外存储 coredata 文件?.

@Kendall Helmstetter Gelner 和 @Matthias Bauch 提供了非常好的回复。我为他们投了赞成票。

现在我的问题是相当概念性的,我将尝试解释它。

从Apple 文档中您应该将应用程序的文件部分放在哪里,我已经阅读了以下内容:

以以下两种方式之一处理支持文件——应用程序下载或生成并可以根据需要重新创建的文件:

  • 在 iOS 5.0 及更早版本中,将支持文件放在 /Library/Caches 目录中,以防止它们被备份

  • 在 iOS 5.0.1 及更高版本中,将支持文件放在 /Library/Application Support 目录中并 com.apple.MobileBackup对其应用扩展属性。此属性可防止将文件备份到 iTunes 或 iCloud。如果您有大量支持文件,您可以将它们存储在自定义子目录中,并将扩展属性仅应用于该目录。

Apple 表示,对于处理支持文件,您可以根据已安装的 iOS 采用两种不同的方式。在我看来(但也许我错了)Core Data 文件是一个支持文件,因此它属于这些类别。

说到这里,Matthias 和 Kendall 的方法是否继续有效?特别是,如果我在Library文件夹中创建一个目录,比如Private ,这个目录在 iOS 5 版本(5.0 和 5.0.1)中是否继续保持隐藏状态,还是我需要遵循 Apple 解决方案?如果后者有效,您能否提供任何示例或链接?

先感谢您。

4

1 回答 1

1

我会说核心数据文件并不是真正的支持文件——除非你有某种方法可以复制存储的数据,否则你会希望它备份。

支持文件更多的是图像或数据库,它们只是远程网站的缓存。

因此,您可以继续将您的核心数据数据库放在您喜欢的位置(尽管它应该在应用程序支持下)。

截至 2013 年 1 月的最新补充:Apple 已开始将您从捆绑软件复制到可写区域的预加载 CoreData 数据存储区视为支持文件 - 即使您也将用户数据写入相同的数据库。解决方案(来自 DTS)是确保当您将数据库复制到位时,设置 do-not-backup 标志,然后在用户数据写入数据库时​​取消设置。

如果您的 CoreData 存储纯粹是下载的网络数据的缓存,请继续确保它位于缓存之类的地方或设置了“不备份”标志。

于 2012-09-12T20:13:53.360 回答