我在 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/