【问题标题】:Clarification needed about Where I Should Put (Store) My Core Data’s SQLite File?需要澄清我应该在哪里放置(存储)我的核心数据的 SQLite 文件?
【发布时间】:2012-09-04 21:16:11
【问题描述】:

是的,我知道。这个问题已经在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 采用两种不同的方式。在我看来(但也许我错了)Core Data 文件是一个支持文件,所以它属于这些类别。

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

提前谢谢你。

【问题讨论】:

    标签: file sqlite core-data filesystems directory


    【解决方案1】:

    我会说 Core Data 文件并不是真正的支持文件 - 除非您有某种方法可以复制存储的数据,否则您会想要备份它。

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

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

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

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

    【讨论】:

    • +1 表示支持。那么,为了防止用户看到该文件,我是否必须将它放在应用程序支持或库下?你会喜欢哪个目录?非常感谢。
    • 此外,您是指 /Library/ 文件夹下的 Application Support(上面列表中的第二项)吗?谢谢。
    • 如果他们想找到文件,您无法在任何地方隐藏文件,因为使用 iPhone 资源管理器之类的工具,您可以浏览整个应用程序沙箱。是的,我的意思是图书馆下的应用程序支持...
    猜你喜欢
    • 2011-05-30
    • 2023-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-07
    • 1970-01-01
    • 2012-12-02
    • 2018-10-28
    相关资源
    最近更新 更多