ios - 没有这样的表 Sqlite 错误 iOS

标签 ios iphone sqlite

我在 iOS 应用程序中使用 sqlite。我已成功创建登录和注册屏幕和表格。现在,我正在创建另一个表来保存数据。该表已创建,但当我运行查询以插入值时,出现以下错误 ---“没有这样的表:proposalInfo”。有人可以帮助我吗?

最佳答案

如果您在终端上创建了数据库,那么问题可能出在您如何将您从终端访问的数据库获取到您的 iOS 设备上。通常你会把它包含在包中(并确保你有一个针对适当目标的复选标记),然后你会有代码在“Application Support”目录中查找数据库,如果没有找到,复制它从捆绑到那里。 (请注意,在过去,我们会推荐“Documents”文件夹,但现在是面向用户的文件;现在我们使用“Application Support”目录来存放应用程序内部使用的文件。)典型的问题是简单的错误在那个逻辑中(也许在之前的开发迭代中),未能正确复制它然后调用 sqlite3_open 创建空白数据库。

很可能,在此过程中的某处,错误检测/报告不足,因此未检测到某些错误并创建了空白数据库。所以,我建议:

  • 从设备中删除应用程序(以删除“Application Support”文件夹中的任何空白数据库,如果有的话);

  • 仔细检查错误检测/报告(例如检查所有 NSFileManager 方法返回代码和 NSError 对象);

  • 不要使用 sqlite3_open,而是使用 sqlite3_open_v2 这样它就永远不会创建空白数据库(即使用 SQLITE_OPEN_READWRITE 选项, 但不是 SQLITE_OPEN_CREATE);和

  • 再次运行应用程序,看看您是否可以找出过程中哪里出错了。


顺便说一句,如果你不相信我们数据库中确实缺少该表,我建议你从 macOS SQLite 工具打开模拟器的数据库,然后简单地确认一下。所以

  • 导航到模拟器的“Application Support”文件夹:

    ~/Library/Developer/CoreSimulator/Devices/[GUID]/data/Containers/Data/Application/[GUID]/Library/Application Support

  • 在您的 SQLite 终端界面中打开该数据库,并确认是否存在相关表。

关于ios - 没有这样的表 Sqlite 错误 iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38392327/

相关文章:

iOS/iPhone SDK : Is there an event for when network is lost/back?

ios - Swift:我无法将 Firebase FIRAuth 函数中的变量传回父函数中声明的变量

iphone - 为什么不调用 viewWillDisappear 或 viewDidAppear?

iphone - 用于架构 i386 的 Objective-C undefined symbol ,我不明白这个错误

java - Android SQLITE : How to retrieve primary key of a certain row

c# - 使用 SQLite 进行日志记录

ios UITableview 单个单元格上的多个选择选项?

iphone - Google api 方向 - 绘制路线无效

iphone - UITableView:删除带有动画的部分

node.js - Node sqlite node-gyp 构建错误 : no member named 'ForceSet' in 'v8::Object'