2012-02-22 12 views
10

C'è un modo semplice per ottenere facilmente i risultati FMDB di un executeQuery:SELECT * ... in un dizionario?FMDB resultset nel dizionario

FMResultSet *appointmentResults = [[DataClass getDB] executeQuery:@"SELECT * FROM Appointments WHERE date = ?",currDateString]; 
while ([appointmentResults next]) { 
    //Create dictionary 
    //Add dictionary to array for later use 
} 

Mi chiedevo se c'era un modo per rendere i tasti del dizionario i nomi delle colonne e i valori dei valori delle colonne. Preferibilmente senza dover fare un ciclo attraverso ogni fila nel tempo.

risposta

27

Sì:

NSMutableArray *results = [NSMutableArray array]; 

FMResultSet *appointmentResults = [[DataClass getDB] executeQuery:@"SELECT * FROM Appointments WHERE date = ?",currDateString]; 
while ([appointmentResults next]) { 
    [results addObject:[appointmentResults resultDictionary]]; 
} 

-resultDictionary è un metodo incorporato in FMResultSet che trasformerà la tupla corrente in un NSDictionary, calettato al nome della colonna.

+0

Fantastico! dove lo hai preso? Osservando la documentazione FMDB resultDict non è lì. – Bot

+0

@jostster è in 'FMResultSet.h'. –

+0

'-resultDict' è deprecato, usare invece' -resultDictionary'. – lucianf