iPhone上的预加载数据库?

Posted

技术标签:

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

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

问题:

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

【问题讨论】:

【参考方案1】:

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

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

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

Core Data on iOS 5 Tutorial: Getting Started Core Data on iOS 5 Tutorial: How To Preload and Import Existing Data

【讨论】:

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

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

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

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

【讨论】:

【参考方案3】:

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

你就完成了。

【讨论】:

以上是关于iPhone上的预加载数据库?的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 AS3:第1帧上的预加载器

实现图片的预加载和懒加载

带有核心数据的预加载数据库

iis的预加载已启用要开吗?

js图片预加载

考虑 application.properties 的预加载数据的 Spring 数据最佳实践