Удаление ячейки из таблицы - Ошибка - Предоставлен код - PullRequest
0 голосов
/ 06 февраля 2012

У меня есть пользовательская ячейка, и я добавляю к ней сегментный элемент управления.

-(void)segmentclicked:(id)sender{


        UISegmentedControl *segmentC = (UISegmentedControl *)sender;

        CustomCell *cell=(CustomCell *)segmentC.superview.superview;

        NSIndexPath *indexPath = [self.table indexPathForCell:cell];

        NSMutableArray *discardarr = [NSMutableArray array];

        [discardarr addObject:[self.entries objectAtIndex:indexPath.row]];

        [self.table beginUpdates];

        [self.itemsArray removeObjectsInArray:discardarr ]; 

        [self.table deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil]  withRowAnimation:NO];         

        self.entries = [NSArray arrayWithArray:self.itemsArray];

        [self.table endUpdates];

        [self.table reloadData];


    }
}

Я получаю следующую ошибку;

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

* Первый вызов стека вызовов:

1.) Как я могу избавиться от этого, я думаю, что я все сделал соответственно. Я даже пытался добавить строку [self.table reloadData]; выше [self.table endUpdates];, но никаких изменений не произошло. Помощь

1 Ответ

2 голосов
/ 06 февраля 2012

после удаления строк в вашем коде этой строкой [self.table deleteRowsAtIndexPaths:[NSArray arrayWithObjects:indexPath, nil] withRowAnimation:NO];

ваше табличное представление снова проверяет источник данных, чтобы увидеть количество разделов в строке и количество строк в разделах. Ошибка заключается в том, что при проверке удаленный элемент все еще существует как элемент источника данных, который должно отображаться в виде таблицы, но вы вызвали delete the row.

Например.

в моем количестве строк я возвращаю 7.

но если я удаляю строку, мне нужно сделать это возвращение 6 .. но вы все равно можете быть 7 ..

(обычно возвращаемое значение равно некоторому [количеству массивов], которое я только что использовал, возвращая 7 в качестве примера)

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