FMDB с многопоточностью - PullRequest
2 голосов
/ 07 мая 2011

В моем приложении ios я использую FMDB для подключения к базе данных sqlite3.В приложении db будет использоваться в многопоточности. В результате я создаю синглтон следующим образом:

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

[dbManager initialDBmanager];
return dbManager;
}

, однако Ошибка: FMDataBase в настоящее время используется, иногда происходитзатем я обновляю экземпляр:

+ (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;
}

Ошибка все еще существует.Поэтому мой вопрос заключается в том, как правильно создать синглтон и почему код не может избежать ошибки.спасибо!

1 Ответ

1 голос
/ 09 мая 2011

Я использую @synchronized, и это временно решает проблему.

Я буду следить за этим ~

...