我正在使用FMDB FMDatabaseQueue
来读/写多线程应用数据库。这是我的代码,看起来像,
在后台主题中:
[queue inTransaction:^(FMDatabase *db, BOOL *rollback) {
for (NSDictionary *dic in ary) {
//long process
// .
// .
bol = [db executeUpdate:@"insert query"];
}
}];
在UI线程中:
double Price1=[self getPrice];
double Price2=[self getPrice];
-(double )getPrice{
__block double price=0.0;
[queue inDatabase:^(FMDatabase *db) {
FMResultSet *rs = [db executeQuery:querySQL];
if([rs next])
price=[rs doubleForColumnIndex:1];
}];
return price;
}
队列是一个单独的FMDatabaseQueue
对象。我的多线程应用程序因原因而崩溃:
FMDatabase.m line 776 -[FMDatabase executeQuery:withArgumentsInArray:orDictionary:orVAList:]
FMDatabase.m line 896 -[FMDatabase executeQuery:]
知道这次事故发生的原因。任何解决方案?