多線程操做sqlite數據庫,使用FMDataBaseQueue 返回一個值。sql
1,返回數組數據庫
NSMutableArray *myArray = [NSMutableArray array]; [manageQueue.dbQueue inDatabase:^(FMDatabase *db) { FMResultSet *rs = [db executeQuery:selectSql]; while ([rs next]) { ... ... [myArray addObject:object]; } [rs close]; }];
2.返回NSInteger、BOOL 或者其餘數組
__block NSInteger total = 0; [manageQueue.dbQueue inDatabase:^(FMDatabase *db) { FMResultSet *rs = [db executeQuery:selectSql]; if ([rs next]) { total = [[rs stringForColumnIndex:0] integerValue]; } [rs close]; }]; return total;
3.我的測試得出 貌似使用FMDataBaseQueue 不能在inDataBase:^(FMDatabase 8db) {} 裏面返回FMResultSet 對象;當我返回FMResultSet 對象時,總是出現 Error calling sqlite3_step (21: out of memory) rs 錯誤。我不知道是否是由於返回FMResultSet 對象 。等大神來給我解答。。。多線程