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
ご覧のとおり、データベーステーブルのレコードを表すカスタムクラスを作成したと想定しています。もちろん、辞書を使って作業することもできます。