Сбой при удалении строки из UItableview - PullRequest
2 голосов
/ 21 февраля 2012

При удалении строки из Uitableview с использованием commitEditingStyle мое приложение вылетает с этой ошибкой.

Ошибка подтверждения в - [UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-1912.3/UITableView.m:1046. Окончание приложение из-за необработанного исключения NSInternalInconsistencyException ', причина: «Неверное обновление: недопустимое количество строк в разделе 0. количество строк, содержащихся в существующем разделе после обновления (2) должно быть равно количеству строк, содержащихся в этом разделе перед обновление (1), плюс или минус количество вставленных или удаленных строк из этого раздела (0 вставлено, 1 удалено) и плюс или минус число строк, перемещенных в этот раздел или из него (0 перемещен, 0 перемещен).

Это мой код:

- (void)tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    // If row is deleted, remove it from the list.
    if (editingStyle == UITableViewCellEditingStyleDelete) {
      order *OrderObj= [appDelegate.orderArray objectAtIndex:[indexPath row]];
       [appDelegate removeitem:OrderObj];

        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }   }

Ответы [ 2 ]

6 голосов
/ 21 февраля 2012

Попробуйте изменить эти строки:

order *OrderObj= [appDelegate.orderArray objectAtIndex:[indexPath row]];
[appDelegate removeitem:OrderObj];

до:

[appDelegate.orderArray removeObjectAtIndex:[indexPath row]]; // assuming orderArray is NSMutableArray
6 голосов
/ 21 февраля 2012

Ваш tableView:numberOfRowsInSection: возвращает неверное значение после обновления. Проверьте значение, возвращенное до удаления и после удаления. Должно быть уменьшено на 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...