我有一个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.row
和removeObject: person
。这些都不起作用
答案 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];