2010-06-07 29 views
2

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

问题:

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

回答

1

在我的iPhone短的经验,你有两个选择。

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

从过去的经验来看,选项2对于用户体验和首选解决方案来说要快得多。

4

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

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

工作通过这两个教程由线链接它,线,然后你会有足够的理解(和代码示例)在你自己的应用程序中完成这个任务。

+0

感谢您的快速响应..... 所以这是唯一/最好的方式来实现预加载分贝?例如,微不足道的应用程序会使用这种方法(显然这将是猜测工作,但在您看来)? 非常感谢 朱尔斯 – Jules 2010-06-07 15:21:32

+0

+1应用程序附带的所有东西都必须位于应用程序包中。您可以轻松包含预填充的数据库,但始终只能读取。您唯一的选择是将所有数据包含在XML中,然后在首次启动时在应用程序目录中生成数据库。用户通常不喜欢后者,因为它使他们闪亮的新应用程序陷入困境。 – TechZen 2010-06-07 15:39:38

+0

感谢您的帮助,看起来预填充的sqlite数据库是更有效的方式。 – Jules 2010-06-07 15:49:35

1

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

你完成了。