从tableView中删除单元格

时间:2012-01-25 17:48:57

标签: iphone objective-c

我有一个tableview添加到viewController(我想这样)。 tableview的每个单元格都有一个segmentcontroller,当用户点击它时,单元格会删除/删除。

我最终得到一个例外,我不知道如何解决它。

  

2012-01-23 15:35:26.729 TestProject [21003:707] * 断言失败   in - [UITableView _endCellAnimationsWithContext:],   /SourceCache/UIKit/UIKit-1448.89/UITableView.m:995

     

2012-01-23 15:35:26.761 TestProject [21003:707] * 终止应用   由于未捕获的异常'NSInternalInconsistencyException',原因:   '无效更新:第0节中的行数无效。数量   更新(2)后必须包含在现有部分中的行   等于之前该部分中包含的行数   update(2),加上或减去插入或删除的行数   该部分(0已插入,1已删除)。'

到目前为止我的代码;

按钮事件中的

;

UITableViewCell *cell=(UITableViewCell *)segmentController.superview.superview;

        NSIndexPath *indexPath = [self.myTableView indexPathForCell:cell];

        Person *person= [[self allThdata] objectAtIndex:indexPath.row];

                [self.allThdata removeObjectIdenticalTo:person];

        [self.myTableView beginUpdates];

        [self.myTableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:YES];

        [self.myTableView endUpdates];

我还尝试了removeObjectAtIndex: indexPath.rowremoveObject: person。这些都不起作用

1 个答案:

答案 0 :(得分:1)

removeObjectAtIndex:的来电应位于beginUpdates区内。

这应该可以解决问题:

UITableViewCell *cell=(UITableViewCell *)segmentController.superview.superview;
NSIndexPath *indexPath = [self.myTableView indexPathForCell:cell];
[self.myTableView beginUpdates];
[[self allThdata] removeObjectAtIndex:indexPath.row];
[self.myTableView deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:YES];
[self.myTableView endUpdates];