gpt4 book ai didi

ios - FMDB 多线程问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:56:59 27 4
gpt4 key购买 nike

在我的 ios 应用程序中,我使用 FMDB 连接到 sqlite3 数据库。在app中,多线程会用到db,所以我创建了一个单例:

+ (id)instance
{
static DBManager *dbManager = nil;
if (dbManager == nil) {
dbManager = [[DBManager alloc]init];
}

[dbManager initialDBmanager];
return dbManager;
}

但是错误:FMDataBase is currently in use,有时会发生。然后我更新实例:

+ (id)instance
{
static DBManager *dbManager = nil;
if (dbManager == nil) {
dbManager = [[DBManager alloc]init];
[dbManager initialDBmanager];
}

while([dbManager.db inUse])//In my opinion this promises the db is free
{
}
return dbManager;
}

错误仍然存​​在。所以我的问题是如何正确创建单例以及为什么代码无法避免错误。谢谢!

最佳答案

我使用@synchronized,它暂时解决了这个问题。

我会关注的~

关于ios - FMDB 多线程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5921280/

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