【问题标题】:database not being copied to the iPhone device from resources数据库未从资源复制到 iPhone 设备
【发布时间】:2011-10-12 06:40:48
【问题描述】:

我想出了一个奇怪的问题。我在我的应用程序中使用 sqlite 数据库。该应用程序在模拟器中运行时运行良好,但是当我在 iPhone 设备上部署该应用程序时,它不会从数据库中读取。另外,当我尝试向表中插入某些内容时,它说没有这样的表,这意味着我的数据库实际上并未复制到设备中。我尝试使用 Build->Clean all Targets 清理项目,删除 Build 文件夹并手动从设备中删除应用程序。然后再次尝试构建。但没有运气。当然,我已将数据库添加到资源中,我可以找到并实际读取内容。请指导我在设备上部署时出了什么问题。

【问题讨论】:

  • 您是否已将 db 文件复制到文档目录?如果不这样做,请在您想在其中进行 CRUD 操作时读取数据库。

标签: iphone objective-c sqlite


【解决方案1】:

首先检查您是否在复制资源构建阶段将数据库复制到包中。当资源在捆绑包中时,您无法修改它,您需要将其复制到应用程序的文档目录中

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];

【讨论】:

    【解决方案2】:

    实际上我从来没有设法做到这一点。这就是为什么我有一个构建脚本设置,它将我拥有的任何 sqlite DB 转储到 .sql 文本文件中。在手机上第一次运行应用程序时,我只是从这些 sql 行生成 sqlite DB。对我来说比使用 sqlite 的二进制文件更省钱。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 1970-01-01
      • 1970-01-01
      • 2015-08-05
      • 1970-01-01
      • 2012-05-31
      相关资源
      最近更新 更多