1.问题
对UITableViewCell 进行增删操作,引起UITableView _endCellAnimationsWithContext崩溃问题;例如:
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:cell.indexpath.row inSection:0];
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade]。
2.崩溃分析
使用cell持有当前indexpath,但是当对UITableView进行增删操作如delete rows之后,cell所在的index已经改变,而cell持有的index没有改变导致了插入越界问题。
3.解决方案
不要记录cell的indexpath,而是用tableview获取;
核心代码:
NSIndexPath*indexPath = [self.tableView indexPathForCell:cell];
[self.tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];