Для класса FMResultSet определен метод resultDict . Я бы сделал это так:
FMResultSet *rs = [db executeQuery:@"SELECT Name, Age, FROM PersonList"];
while ([rs next]) {
NSLog(@"%@", [[rs resultDict] description]);
}
Это должно напечатать что-то вроде:
{
Name = bbbbbird1;
Age = 25;
}
для каждой строки в таблице PersonList. Теперь есть два способа поместить эти значения в массив. Одним из них является использование allValues метода NSDictionary , однако порядок столбцов, скорее всего, будет нарушен. Другой способ - создать массив самостоятельно:
FMResultSet *rs = [db executeQuery:@"SELECT Name, Age, FROM PersonList"];
while ([rs next]) {
NSMutableArray* rowData = [[NSMutableArray alloc] init];
for(int i=0; i<[s columnCount]; i++) {
[rowData addObject:[[rs resultDict] objectForKey:[[rs columnNameForIndex:i] lowercaseString]];
}
NSLog(@"%@", [rowData description]);
}
Выше должно быть напечатано:
(
bbbbbird1,
25
)
Надеюсь, это то, что вы ищете. Вы можете поместить этот код в категорию FMResultsSet , если вам нужно, чтобы строки во многих местах в вашем приложении были массивами.