Я пытаюсь освоить UITableViews и все, что с этим связано. На данный момент у меня есть следующий код:
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 10;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
[cell.textLabel setText:[NSString stringWithFormat:@"I am cell %d", indexPath.row]];
return cell;
}
- (IBAction)killItem {
NSIndexPath *indexToDelete = [NSIndexPath indexPathForRow:2 inSection:0];
[tbl deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexToDelete] withRowAnimation:UITableViewRowAnimationRight];
}
И я получаю следующую ошибку при запуске функции killItem:
Завершение работы приложения из-за необработанного исключения «NSInternalInconsistencyException», причина: «Неверное обновление: недопустимое количество строк в разделе 0. Число строк, содержащихся в существующем разделе после обновления (10), должно быть равно количеству строк содержится в этом разделе перед обновлением (10), плюс или минус количество строк, вставленных или удаленных из этого раздела (0 вставлено, 1 удалено). '
Насколько я понимаю, tableViews в основном имеют делегата и источник данных, где источник данных, помимо прочего, определяет, сколько строк должно быть в tableView. Посредством некоторых поисков здесь в stackoverflow я обнаружил, что эта ошибка возникает, когда «источник данных не соответствует реальности», когда он ищет строки, которые не существуют, которые я удалил.
Возможно, я понял это неправильно, но я думаю, это то, что я делаю. Итак, мой вопрос: как мне заставить их соответствовать, чтобы я мог избежать этой ошибки?
Для справки, я заглянул в следующие посты, не понимая, что мне нужно делать:
Ошибка: количество строк в разделе в UITableView в iPhone SDK
Слайд UITableViewCell
Завершение работы приложения из-за необработанного исключения 'NSRangeException', причина: '*** - [NSMutableArray objectAtIndex:]: индекс 1 за пределами [0 .. 0]'
Добавление [tbl reloadData]
, [tbl beginUpdate] ... [tbl endUpdate]
в функцию killItem, похоже, не помогло мне решить проблему.
Заранее спасибо,
Тобиас Товедал