我想我在这里错过了一些非常简单的事情。现在,每个单元格的单元格文本都设置为相同的文本。任何人都可以看到我的错误吗?
for (ProductItem *code in codeAray1)
{
NSString *codeText = code.code;
NSString *nameText = code.name;
NSString *cellText = [NSString stringWithFormat:@"%@: %@", codeText, nameText];
cell.textLabel.text = cellText;
}
这就是从SQLite查询创建数组的方法:
ProductItem *code = [[HCPCSCodes alloc] init];
code.code = [NSString stringWithCString:(char *)sqlite3_column_text(statement, 0) encoding:NSUTF8StringEncoding];
code.name = [NSString stringWithCString:(char *)sqlite3_column_text(statement, 1) encoding:NSUTF8StringEncoding];
code.description = [NSString stringWithCString:(char *)sqlite3_column_text(statement, 2) encoding:NSUTF8StringEncoding];
[codeAray1 addObject:code];
[code release];
}
答案 0 :(得分:1)
在第一个代码段中的每个循环迭代中将文本设置为相同的单元格(无论代码在哪里)...您需要根据单元格的当前行设置文本
基本上,该代码应该在表的数据源中的cellForRowAtIndexPath:方法中,如下所示:
- (UITableViewCell*) tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath)*indexPath{
UITableViewCell *cell = ...// create/deque/setup cell
// Now get just the code that should be displayed in a given row
ProductItem *code = [codeAray1 objectAtIndex: indexPath.row];
NSString *codeText = code.code;
NSString *nameText = code.name;
NSString *cellText = [NSString stringWithFormat:@"%@: %@", codeText, nameText];
cell.textLabel.text = cellText;
return cell;
}