Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Simplified -[FMResultSet resultDict] implementation

  • Loading branch information...
commit 59a209ec01471791acf1229f4fd2fbaa91679f9a 1 parent 4d12c96
@davedelong davedelong authored
Showing with 10 additions and 35 deletions.
  1. +10 −35 src/FMResultSet.m
View
45 src/FMResultSet.m
@@ -93,41 +93,16 @@ - (NSDictionary *)resultDict {
if (num_cols > 0) {
NSMutableDictionary *dict = [NSMutableDictionary dictionaryWithCapacity:num_cols];
- int i;
- for (i = 0; i < num_cols; i++) {
-
- const char *col_name = sqlite3_column_name(statement.statement, i);
-
- if (col_name) {
- NSString *colName = [NSString stringWithUTF8String:col_name];
- id value = nil;
-
- // fetch according to type
- switch (sqlite3_column_type(statement.statement, i)) {
- case SQLITE_INTEGER: {
- value = [NSNumber numberWithInt:[self intForColumnIndex:i]];
- break;
- }
- case SQLITE_FLOAT: {
- value = [NSNumber numberWithDouble:[self doubleForColumnIndex:i]];
- break;
- }
- case SQLITE_TEXT: {
- value = [self stringForColumnIndex:i];
- break;
- }
- case SQLITE_BLOB: {
- value = [self dataForColumnIndex:i];
- break;
- }
- }
-
- // save to dict
- if (value) {
- [dict setObject:value forKey:colName];
- }
- }
- }
+ if (!columnNamesSetup) {
+ [self setupColumnNames];
+ }
+
+ NSEnumerator *columnNames = [columnNameToIndexMap keyEnumerator];
+ NSString *columnName = nil;
+ while ((columnName = [columnNames nextObject])) {
+ id objectValue = [self objectForColumnName:columnName];
+ [dict setObject:objectValue forKey:columnName];
+ }
return [[dict copy] autorelease];
}
Please sign in to comment.
Something went wrong with that request. Please try again.