我正在尝试 FMDB,如果我可以让我的 FMResultSet 变成 NSMutableArray,它看起来对我来说非常有用。
我将如何做到这一点?
你可以试试这个。
NSMutableArray *array = [NSMutableArray array];
FMDatabase *database = [FMDatabase databaseWithPath:databasePath];
[database open];
FMResultSet *results = [database executeQuery:@"SELECT * FROM Table"];
while ([results next]) {
[array addObject:[results resultDictionary]];
}
NSLog(@"%@", array);
[database close];
我在项目中使用它,它工作得很好。
FMDB的示例代码非常清楚地说明了它是如何FMResultSet
工作的。next
通过在每次迭代中调用方法来迭代结果集中的行。在循环内部,您使用数据访问器方法检索当前行的每列数据。如果你想把它变成一个数组,你必须手动完成。像这样:
NSMutableArray *array = [NSMutableArray array];
FMResultSet *rs = [db executeQuery:@"select * from table"];
while ([rs next]) {
// Get the column data for this record and put it into a custom Record object
int col1 = [rs intForColumn:@"col1"];
int col2 = [rs intForColumn:@"col2"];
Record *record = [Record recordWithCol1:col1 col2:col2];
[array addObject:record];
}
[rs close];
如您所见,我假设您已经构建了一个自定义Record
类来表示数据库表中的一条记录。当然,您也可以使用字典。