我有一个自定义UITableViewController
已经传递给NSArray
NSArrays
,其中包含NSDictionarys
NSDictionary
。就目前而言(直到我开始工作)UITableViewController
个对象只有" id"和"价值"元件。
UITableViewCell
使用自定义NSDictionary
,目前只有一个标签。
此外,为了暂时的简单起见,所有CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"CellIdentifier"];
if (cell == nil) {
cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellIdentifier"] autorelease];
NSDictionary *temp = [tmp objectAtIndex:0];
cell.descriptionLabel.text = [temp objectForKey:@"value"];
cell.delegate = self;
}
个对象仅包含"值"的数字。所以我可以更容易地跟踪进展情况。所以数组[0] [0]有" 1-1&#34 ;,数组[1] [0]有" 2-1"并计数。
问题:
表行的大小使得我最初只能看到3行。滚动时,第4行正确显示" 4-1"。但是,在遵循代码时,我注意到第5行没有正确初始化。
{{1}}
我注意到" cell"对象不会返回nil并且已经初始化。它显示" 1-1"在标签而不是" 5-1"。
任何人都知道为什么?我不认为它与使用的相同的单元标识符名称有关。
非常感谢帮助。
答案 0 :(得分:2)
您的代码必须是这样的:
CustomCell *cell = (CustomCell *)[tableView dequeueReusableCellWithIdentifier:@"CellIdentifier"];
if (cell == nil) {
cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"CellIdentifier"] autorelease];
cell.delegate = self;
}
NSDictionary *temp = [tmp objectAtIndex:indexPath.row];
cell.descriptionLabel.text = [temp objectForKey:@"value"];
我假设tmp
是一个数组,您希望数组中的值基于单元格的indexPath.row
。