Невозможно заставить deleteRowsAtIndexPaths работать

У меня есть UITableView и планировщик, работающий в фоновом режиме, удаляющий записи из базового объекта данных. Каждый раз, когда объект удаляется, я хочу, чтобы представление таблицы обновлялось соответствующим образом.

Но я продолжаю получать это раздражающее сообщение об ошибке при попытке удалить строку из представления таблицы.

* Завершение работы приложения из-за неперехваченного исключения NSInternalInconsistencyException , причина: «Недопустимый путь индекса для использования с UITableView . Пути индекса, переданные в представление таблицы, должны содержать ровно два индекса, определяющих раздел и строку. По возможности используйте категорию NSIndexPath в UITableView.h ».

Код:

NSIndexPath *indexPath = [NSIndexPath indexPathWithIndex:0];
NSUInteger row = [indexPath row];

NSMutableArray* files = [[NSMutableArray alloc] initWithArray:fileNames];
[files removeObjectAtIndex:[indexPath row]];
[fileNames dealloc];
fileNames = [NSArray arrayWithArray:files];

//[self.fileNames removeObjectAtIndex:row];
[self.tableDraft deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath]
withRowAnimation:UITableViewRowAnimationFade];

PS: Я также пробовал [tableView reloadData]; , но это имеет нежелательные побочные эффекты, стирая выбранный индекс.

5
задан Andrey Zverev 9 January 2012 в 21:46
поделиться