Как удалить ячейку с пальцем скольжения на iPhone - PullRequest
0 голосов
/ 22 июля 2010

Я пытаюсь удалить ячейку на tableView, проводя пальцем по экрану (как при недавнем вызове).Я знаю, что мне нужно реализовать:

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath    
{  
    NSArray *index = [[NSArray alloc]initWithObjects:indexPath];  
    [self.tableView deleteRowsAtIndexPaths:index withRowAnimation: UITableViewRowAnimationNone];  
}

Но когда я сдвигаю палец, я получаю эту функцию, а во втором ряду, когда пытаюсь удалить ячейку, появляется ошибка get:

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

Может ли кто-нибудь помочь?

1 Ответ

2 голосов
/ 22 июля 2010

Когда вы вызываете

[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: .

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