【问题标题】:Pre loaded database on iPhone?iPhone上的预加载数据库?
【发布时间】:2010-06-07 15:14:29
【问题描述】:

我正在开发一个只读应用程序。数据有关系,所以我不能只使用 plist 或类似的东西。

问题:

  • 我应该使用 Core Data 来满足这样的要求吗?
  • 如果是这样,我将如何输入数据然后使用该数据发布应用程序?
  • 我将如何做到这一点,以便应用程序在每次加载时都不需要重新填充数据库?
  • 有没有办法使用带有 sqlite 的 sql 命令(即插入等)来创建 Core Data 模型?

【问题讨论】:

    标签: objective-c ios sqlite core-data


    【解决方案1】:

    您可以使用 SQLite 数据库来完成此操作。

    1. 在您的 iOS 应用程序中创建模型。
    2. 在 Mac OSX 实用程序命令行应用程序中创建和填充数据库
    3. 将 sqlite 文件复制到您的 iOS 应用中并用一些代码链接它

    逐行完成这两个教程,然后您将有足够的理解(和代码示例)以在您自己的应用中完成此任务。

    【讨论】:

    • 感谢您的快速回复.....那么这是实现预加载数据库的唯一/最佳方法吗?例如,琐碎的追求之类的应用程序会使用这样的方法吗(显然这是猜测工作,但在您看来)?非常感谢朱尔斯
    • +1 应用程序附带的所有内容都必须包含在应用程序包中。您可以轻松地包含一个预填充的数据库,但它始终是只读的。您唯一的其他选择是将所有数据包含在 XML 中,然后在首次启动时在应用程序的目录中生成数据库。用户通常不喜欢后者,因为它阻碍了他们闪亮的新应用。
    • 感谢您的所有帮助,似乎预填充的 sqlite 数据库是更有效的方法。
    【解决方案2】:

    根据我对 iPhone 的短暂体验,您有两种选择。

    1. 编写数据导入函数并在应用程序首次启动时运行。
    2. 使用解决方案 1,但在模拟器中构建初始 sqllite 文件,然后在第一次启动应用程序时,将其复制到应用程序的文档目录中。

    从过去的经验来看,选项 2 的用户体验要快得多,并且是首选解决方案。

    【讨论】:

      【解决方案3】:

      您可以编写一个实用程序项目来导入应用程序的数据模型,并使用该项目的一次性代码来填充 Core Data DB。填充数据库后,只需将实际文件复制到应用程序项目的资源文件夹,然后在设置持久存储时,使用 NSBundle 将路径返回到构建应用程序中的数据库文件。

      你就完成了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-01-14
        • 2014-08-25
        • 1970-01-01
        • 2012-01-15
        • 1970-01-01
        • 1970-01-01
        • 2010-09-23
        • 1970-01-01
        相关资源
        最近更新 更多