gpt4 book ai didi

iphone - sqlite3 无法为我读取数据库,但在另一台机器上无法读取数据库

转载 作者:行者123 更新时间:2023-11-29 13:48:29 24 4
gpt4 key购买 nike

背景

我们有一个 iPhone 应用程序,它使用 sqlite 作为大型数据库。我们使用 FTS3,全文搜索,所以我们必须“推出我们自己的”sqlite,而不是使用 iOS SDK 中包含的库。我们使用合并后的 sqlite.c 文件,并使用 FMDB 作为 Obj-C 包装器。

问题

我的项目可以编译,但它会因我安装的异常而崩溃,该异常用于检测数据库是否出现故障(稍后会详细介绍)。然而,我的合作伙伴正在愉快地编写代码,没有任何问题 - 在 EXACT SAME 提交修订上与我一样。这就是奇怪的地方。

具体而言,该应用在首次加载时执行以下操作:

  1. 将数据库复制到用户的文档目录中,使其可写。 (工作正常)
  2. 使用 FMDB 的 databaseWithPath: 打开数据库,然后使用 open
  3. 此时在 FMDB 上调用 goodConnection 返回 YES - 数据库确实打开并工作。
  4. 调用 SELECT * FROM sqlite_master WHERE type = 'table' 不返回任何记录。 (应该有很多张 table )

我尝试了什么

现在,如果您要求 sqlite“打开”一个不存在的数据库——它只会创建一个。这就是这种行为的样子。因此,我打开了一个终端窗口,导航到模拟器上我的应用程序的文档目录,然后键入:

Makbook:Documents makdad$ sqlite3 myDB.db

它运行 sqlite3,当然,一切看起来都很好。我所有的数据都在那里。

我逐行检查了 FMDB 的打开方法,以确保我打开了正确的数据库。看来我确实是。

我尝试的第一件事是降级到 Xcode 3.2.6。同样的问题,所以我认为我已经排除了编译时 Xcode 3/4 的差异(尽管我起初怀疑)。

有没有人可以尝试调试,或者知道我的问题可能是什么?

最佳答案

我们自定义编译的 SQLite3 也有同样的问题。我在这个博客上找到了这个问题的解决方案 http://regularrateandrhythm.com/regular-rate-rhythm-blog/sqlite3-fts-in-IOS4.html

关于iphone - sqlite3 无法为我读取数据库,但在另一台机器上无法读取数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6146948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com