Когда вы вызываете
[self.tableView deleteRowsAtIndexPaths:index withRowAnimation: UITableViewRowAnimationNone];
Представление таблицы попытается перезагрузить, что, в свою очередь, вызывает метод делегата
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
Поскольку вы удалили одну строку, для необходимых анимацийдля корректной работы табличного представления требуется изменить количество строк на ту же сумму, которую вы удалили с помощью deleteRowsAtIndexPaths: withRowAnimation: .Полученное сообщение об ошибке пытается объяснить эту зависимость.Это говорит о том, что у вас было 4 строк в табличном представлении, вы удалили 1 ... но когда табличное представление спросило вас, сколько строк у вас было после удаления, вы сказали 4 снова вместо 4-1 = 3 , чего он ожидал ... Затем он, по-видимому, отключился, потому что он не хотел жить в мире, где законы естественногочисла не могут объяснить реальность .
Например, если вы используете NSArray * для заполнения вашего tableView, вы должны удалять соответствующие объекты из массива одновременно сВы звоните deleteRowsAtIndexPaths: withRowAnimation: .