2012-02-21 2 views
1

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

недостаточность Assertion в - [UITableView _endCellAnimationsWithContext:], /SourceCache/UIKit_Sim/UIKit-1912.3/UITableView.m:1046 .Terminating приложение из-за неперехваченное исключением NSInternalInconsistencyException ' причины:' Invalid обновление: недействительная количество строк в разделе 0. Количество строк, содержащихся в существующем разделе после обновления (2) , должно быть равно количеству строк, содержащихся в этом разделе, до . (1), плюс или минус количество строки вставлены или удалены из этого раздела (вставлено 0, 1 удалено) и плюс или минус число строк, перемещенных в o r из этой секции (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]; 
    } } 
+0

Распечатайте свою ошибку – Deepesh

ответ

5

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

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

в:

[appDelegate.orderArray removeObjectAtIndex:[indexPath row]]; // assuming orderArray is NSMutableArray 
+0

Спасибо за replying..Your ответ будет удалить элемент из Tableview , но мне также нужно удалить базу данных элемента. – nithin

+0

@nithin. то просто добавьте мою строку в свои строки, не удаляя :). Я предполагаю, что вы удаляете объекты из db, но появляется сбой, потому что у вас неправильный подсчет объектов в orderArray – beryllium

6

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

Смежные вопросы