尝试从与获取的结果控制器挂钩的 tableview 中删除行时出现以下错误:
* -[UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-1914.84/UITableView.m:1037 2012-07-12 13:11:19.921 Chef[28843:12203] 中的断言失败 *由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序',原因:'无效更新:第0节中的行数无效。更新后现有节中包含的行数(20)必须等于更新前该节中包含的行数(20),加上或减去从该部分插入或删除的行数(0 插入,1 删除),加上或减去移入或移出该部分的行数(0 移入,0 移出)。
我的代码如下。
// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the record from the DB
RecipeCategory *objectToBeDeleted = [self.fetchedResultsController objectAtIndexPath:indexPath];
[self.context deleteObject:objectToBeDeleted];
// Delete the row from the data source
[tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
}
else if (editingStyle == UITableViewCellEditingStyleInsert) {
// Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
}
}
使用获取请求计数和方法 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section,我尝试记录 DB 记录数,以及行前后表中的行数[self.context deleteObject:objectToBeDeleted];,它们都从 20 减少到 19。
请帮忙!
编辑: PS 错误发生在 deleteRowsAtIndexPath 方法。