2012-02-22 56 views
10

有一种简单的方式来获得一个executeQuery:SELECT * ...的FMDB结果很容易变成一本字典?FMDB结果集到字典

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

我想知道是否有一种方法可以使字典键列名和值列值。最好不必在时间内的每一行做一个循环。

回答

27

没错:

NSMutableArray *results = [NSMutableArray array]; 

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

-resultDictionaryFMResultSet一个内置的方法,该方法将转向当前元组到一个NSDictionary,通过柱名作为关键字。

+0

太棒了!你从哪里得到这个?查看FMDB文档resultDict不在那里。 – Bot 2012-02-23 02:18:44

+0

@jostster它在'FMResultSet.h'中。 – 2012-02-23 02:30:03

+0

'-resultDict'已被弃用,请改用'-resultDictionary'。 – lucianf 2012-05-21 09:24:37