这可能是之前问题的重复,但我无法弄清楚为什么我的记录会重复。我知道该表试图回收行。看起来该表正在为插入表中的每个数据添加更多单元格。
例如,对于2条记录,我得到4行。对于3条记录,我得到9行。
这里是代码:
UITable委托材料:
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (NSIndexPath *)tableView:(UITableView *)tableView willSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
return nil;
}
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return letters.count;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return letters.count;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil)
{
cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
printf("%li", (long)indexPath.row);
[cell textLabel].text = [letters objectAtIndex:indexPath.row];
return cell;
}
我是否必须先检查数据是否已经显示?
答案 0 :(得分:1)
找到答案。非常愚蠢但容易错过。我把它设置为:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return letters.count;
}
应设置为1,因为只显示1个部分。我会留下这个以防万一有人犯同样的愚蠢错误!
IE
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}