iOS 學習日誌 (1) --- FMDataBaseQueue

多線程操做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 對象 。等大神來給我解答。。。多線程

相關文章
相關標籤/搜索