我有一个tableviewcontroller,在其中我正在尝试加载表的数据。我有一个数组并使用此数组创建我的自定义表格单元格。它在第一次工作正常,但当我想刷新表数据(更新数组后我调用tableview的reloadData方法)但滚动后出现更新的数据。并且新的数组大小比滚动到底部时抛出异常的第一个更小。
reloadData无法正常工作
myArray = [self getNewData:0]; //updating array which is used to creating cells
[self.tableView reloadData]; //reload data
感谢...
答案 0 :(得分:1)
听起来对reloadData的调用完全无效。因此,检查self.tableView
在您调用它时是非零的 - 将NSLog放在该行之上,如下所示:
NSLog(@" self.tableView = %@", self.tableView);
如果没有,那就是你的问题。
答案 1 :(得分:1)
你说,滚动后出现更新的数据。 您是否在单元格中添加标签而不是删除标签?在自定义之前删除单元格上添加的所有标签。
- (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] autorelease];
}
for (UIView * view in cell.contentView.subviews)
{
[view removeFromSuperview];
view = nil;
}
//Your customization
return cell;
}
情况可能如此。 但是occulus提出的建议似乎对我来说是更精确的解决方案。