【问题标题】:Provide Base Data for Core Data Application?为核心数据应用提供基础数据?
【发布时间】:2010-10-30 00:21:51
【问题描述】:

我正在开发一个 Core Data 应用程序(适用于 iPhone 3.0,尽管我认为这在这里并没有什么不同),它需要附带一个充满数据的“入门”数据库。使用 SQLite,我只需让应用程序在首次启动时将填充的数据库从捆绑包中复制到应用程序的文档目录中,然后加载该数据库——所有信息都会随之而来,我们就可以开始了。但是对于 Core Data,我不确定是否可以将 Persistent 存储保存到 App 包并在 Core Data 开始执行它之前复制它。这会导致任何问题吗?初始数据挺多的,不想再打包成别的格式,还要去解析。

【问题讨论】:

  • 你好 Zaph 你能澄清一下吗?检查修改后的文件戳我发现无论扩展名如何,文件总是被修改。你是什​​么意思 Xcode 改变了文件内容?

标签: iphone cocoa cocoa-touch core-data


【解决方案1】:

其实有一个技巧:你必须用“.sqlite”以外的扩展名来命名你要复制的文件,“.bin”就可以了。否则 Xcode 在构建阶段将文件复制到应用程序时会更改文件的内容,并且不会加载。

【讨论】:

    【解决方案2】:

    是的,您可以复制预填充的持久存储。

    我创建了一个填充商店的 Mac 应用程序。它被复制到我的包中,并在开始时复制到 Docs 目录。这工作正常。有人告诉我,Core Data Books 示例是用同样的方式开发的。

    请注意,这并不意味着您可以复制任何旧的 SQLite 文件。它必须是 Core Data 持久存储,但我认为您根据您的问题理解这一点。

    【讨论】:

    • 您认为可以在我的应用程序第一次运行时以编程方式填充持久存储吗?这不会使我的应用程序变得更小,因为我必须包含一段时间的 SQLite 数据库?
    • 如果您的应用可以快速完成此操作,而不会惹恼等待的用户,那么这似乎是一个不错的方法。
    • 小心。除非您的数据可以通过算法生成,否则您通过在运行时填充数据所节省的文件大小似乎会被您需要包含在应用程序中的数据填充代码量所抵消。
    • 有你创建的这个mac应用的示例代码吗?或者你写mac app的时候在哪里找资源
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多