проблема при удалении строки сгруппированной таблицы - PullRequest
0 голосов
/ 20 мая 2011

hii каждые один

я использую следующий код для удаления строки в представлении rgouped table

- (void)tableView:(UITableView *)tv commitEditingStyle:(UITableViewCellEditingStyle)editingStyle 
forRowAtIndexPath:(NSIndexPath *)indexPath {

    if(editingStyle == UITableViewCellEditingStyleDelete) {

        //Get the object to delete from the array.
        insertUpdateDelete *objInsertUpdateDelete = [appDelegate.arrObjects objectAtIndex:indexPath.row];
        [appDelegate DeleteRecord:objInsertUpdateDelete];

        //Delete the object from the table.
        [tableView1 deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }
}


    }

, но его сбой в строке

[tableView1 deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];

журнал сбоев:

2011-05-20 19: 21: 20.233 iICS [10744: 207] * Ошибка подтверждения в - [UITableView _endCellAnimationsWithContext:], / SourceCache / UIKit_Sim/UIKit-1448.89/UITableView.m:995 2011-05-20 19: 21: 20.235 iICS [10744: 207]

 *** Terminating app due to uncaught exception

«NSInternalInconsistencyException», причина: «Неверное обновление: недопустимое количество строк враздел 0. Количество строк, содержащихся в существующем разделе после обновления (3), должно быть равно количеству строк, содержащихся в этом разделе до обновления (3), плюс или минус количество строк, вставленных или удаленных из этого раздела.(0 вставлено, 1 удалено). '

Может ли кто-нибудь из друзей мне помочь?спасибо заранее

Ответы [ 3 ]

1 голос
/ 20 мая 2011

Убедитесь, что ваш источник данных отражает изменения, которые вы делаете, прежде чем вызывать deleteRowsAtIndexPaths:.Я вижу, что вы звоните [appDelegate DeleteRecord:objInsertUpdateDelete];, но если ваш источник данных не получает свои записи непосредственно из appDelegate и не получает их из массива вашего класса, вам также необходимо удалить его из этого массива.

Какобратите внимание, ваш шаблон дизайна для использования делегата приложения может быть похож на «шарик грязи». Рекомендуется ли использовать AppDelegate для манипулирования данными и обработки?

0 голосов
/ 20 мая 2011

Посмотрите в вашем методе:

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

Всегда ли этот метод возвращает правильное количество строк? Кажется, вы НЕ удаляете строку из источника данных, который поддерживает ваш раздел.

EDIT: Возможно, вы делаете удаление, но оно не было завершено (или зафиксировано) в тот момент, когда источник данных вашей таблицы запрашивает новый счетчик строк. Возможно, вам придется отложить [tableView deleteRowsAtIndexPath:] до фиксации базы данных.

0 голосов
/ 20 мая 2011

Сначала необходимо проверить, является ли удаляемая строка единственной строкой в ​​разделе.

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