iPhone + sqlite3 + fmdb, какой код мне нужен, чтобы поместить данные в источник данных UiTableView? - PullRequest
1 голос
/ 24 сентября 2010

Если бы я добавлял данные из массива в массив источника данных UITableView, я бы использовал это в viewDidLoad.

NSMutableArray *array = [[NSArray alloc] initWithObjects:@"Head First Design Patterns", @"Head First HTML & CSS", @"Head First iPhone", nil];
self.transactionsArray = array;
[array release];

И это в cellForRowAtIndexPath

NSInteger row = [indexPath row];
cell.textLabel.text = [transactionsArray objectAtIndex:row];

Но я хочу связать результаты запроса select, я использую fmdb для доступа к моей базе данных. Вот как я сейчас выводю данные на консоль с помощью fmdb.

FMDatabase* db = [FMDatabase databaseWithPath:@"/tmp/mydb.db"];
if (![db open]) {
    NSLog(@"Could not open db.");
}

FMResultSet *rs = [db executeQuery:@"select * from myTable",  nil];
while ([rs next]) {
    NSLog(@"%@, %@, %@, %@, %@", [rs stringForColumn:@"pid"],
            [rs stringForColumn:@"desc"], 
            [rs stringForColumn:@"due"],
            [rs stringForColumn:@"price"],
            [rs stringForColumn:@"accumulated_price"]);
}
[rs close]; 
[db close];

Как мне это сделать?

1 Ответ

1 голос
/ 25 сентября 2010

Создайте массив транзакций в цикле while следующим образом:

[transactionArray addObject:[NSDictionary dictionaryWithObjectsAndKeys:[rs stringForColumn@"pid", @"dictionaryLabel",........, nil];

РЕДАКТИРОВАТЬ: Да, верно, для доступа к нему просто используйте:

descLabelInTableView = [[arrayTmp objectAtIndex:indexPath.row] objectForKey:@"desc"];
...