gpt4 book ai didi

带有 FMDB 的 iOS SQLite 在仅通过 TestFlight 分发临时构建时不断报告 'out of memory' 错误

转载 作者:行者123 更新时间:2023-11-28 19:59:44 30 4
gpt4 key购买 nike

我正在使用 FMDB 在我最新的 iOS 项目(支持 iOS SDK 7.0 及更高版本)中使用 SQLite。在开发过程中,一切都像魅力一样运作,我喜欢这个包装。我已经在模拟器上测试并直接构建到设备(我的设备是 iPhone 5C 和 iPad mini 2),没有发生任何问题。

但是,当我通过 TestFlight 向我的测试人员分发临时构建(使用我的开发人员证书和配置)时,情况就变糟了。他们可以成功下载和安装我的应用程序,但是当它启动时,屏幕会抛出“内存不足”错误。

我检查了其他一些 SO 问题并确保每个 FMResultSet * 在使用后关闭。但是当我使用 iTools 探索应用程序的目录结构时,令人惊讶的是没有创建数据库文件,这意味着 FMDB 无法打开 SQLite 数据库文件并抛出误导性的“内存不足”错误。所以我尝试创建数据库文件:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *appBundleName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
NSString *dbPath = [paths[0] stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.sqlite", appBundleName]];
_database = [FMDatabase databaseWithPath:dbPath];

<- 什么在应用程序的文档文件夹中创建 foo-bar.sqlite

NSString *appBundleName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"];
_database = [FMDatabase databaseWithPath:[NSString stringWithFormat:@"/tmp/%@.sqlite", appBundleName]];

<- 什么在 tmp 文件夹中创建 foo-bar.sqlite

_database = [FMDatabase databaseWithPath:@"/tmp/tmp.db"]];

<- 究竟是什么FMDB tutorial显示

但没有运气。 .sqlite/.db 文件仍未创建。

有没有人以前遇到过这个问题或有什么建议可以帮助我摆脱困境?

提前致谢。

最佳答案

我相信您也在 github 存储库中提到了这一点 - 但基本答案是:使用 FMDatabaseQueue。

关于带有 FMDB 的 iOS SQLite 在仅通过 TestFlight 分发临时构建时不断报告 'out of memory' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24748693/

30 4 0
文章推荐: javascript - 根据