【发布时间】:2013-09-30 04:52:39
【问题描述】:
我正在开发一个最初为支持 iOS 5.1/6.0/6.1 而构建的应用程序。我最近升级到 XCODE 5 并且 sqlite 'select' 查询现在都返回 null,尽管正确的数据库在那里,并且已经连接到并且表被识别。奇怪的是,该应用程序在所有模拟器 5.1-7.0 上都能完美运行,但在实际设备上却没有。我只有 5.1 设备可供测试。
我重新安装了 XCode 4,应用程序正在按预期在 iOS 5.1 设备上编译和运行。对 SQLITE 或编译器或 XCode 5 中的某些其他组件是否有任何更改会导致此问题?
如果有助于解决问题,可以提供代码。
【问题讨论】:
-
代码可能会有所帮助。如果任何调用的结果不是
SQLITE_OK(或SQLITE_DONE/SQLITE_ROW,在sqlite3_step的情况下),您的代码是否记录sqlite3_errmsg?通常,无法解释的 SQLite 错误可以通过查看返回码和sqlite3_errmsg来阐明。我知道 iOS 7 中的 SQLite 没有重大变化。我们中的许多人在 iOS 7 中使用 SQLite 时没有发生任何事故。 -
我怀疑数据库实际上并不存在,在文件系统中丢失了,或者您正在尝试使用捆绑包中的数据库。
-
Hotlicks - 我使用了“iFile”来检查应用程序的文件,并且可以确认数据库在那里。它在 Documents 文件夹以及 .app 包中。我还检查了数据库,可以确认数据和表在数据库中。数据库已成功连接,只是选择查询返回 null。
-
@Rob - 我没有部署到 iOS 7。在这两种情况下我都部署到 5.1。唯一的区别是 XCode。我在使用 XCode 4 编译时工作,但在使用 XCode 5 编译时不工作,选择查询返回 null,尽管 db 在那里并且它已连接到。我将尝试使用更多 sqlite3_errmsg 来尝试识别故障并发布一些代码。
标签: ios objective-c xcode sqlite ios7