尝试从UITableView中删除行时断言失败错误

时间:2012-03-14 07:25:00

标签: ios uitableview row assertion

有时我在尝试从UITableView中删除行时会出现此错误:

  

断言失败 - [UITableView _endCellAnimationsWithContext:]

有时会删除没有问题的行。

这是我的代码:

- (void) tableView:(UITableView *)tableView
commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
 forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle == UITableViewCellEditingStyleDelete)
    {
     [[self displayedObjects] removeObjectAtIndex:[indexPath row]];


     // Animate deletion
     NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
     [[self tableView] deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];

    }
}

2 个答案:

答案 0 :(得分:4)

当你进入编辑模式时,有时候你的 numberOfRowsInSection 会返回错误的整数。

答案 1 :(得分:1)

不太确定..但试试这个(曾经为我工作过一次)

首先为UITableView删除动画,然后从数组中删除该对象。

if (editingStyle == UITableViewCellEditingStyleDelete)
    {
     // Animate deletion
     NSArray *indexPaths = [NSArray arrayWithObject:indexPath];
     [[self tableView] deleteRowsAtIndexPaths:indexPaths withRowAnimation:UITableViewRowAnimationFade];

    [[self displayedObjects] removeObjectAtIndex:[indexPath row]];

    }