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 对象 。等大神来给我解答。。。多线程

相关文章
相关标签/搜索