Я отображаю данные из CoreData
в UITableView
, используя NSFetchedResultsController
в качестве контейнера для NSManagedObjects
.Код для удаления строки работает хорошо, но моя реализация кажется мне менее элегантной.Есть ли лучший способ?
Приведенный ниже код иллюстрирует событие удаления:
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
if (editingStyle == UITableViewCellEditingStyleDelete) {
// Delete the row from the data source
[myContext deleteObject:[fetchedResultsController objectAtIndexPath:indexPath]];
if (![myContext save:&error]) {
// Error handling
}
fetchedResultsController = nil;
if (![[self getFetchedResultController] performFetch:&error]) {
// Error handling
}
[tableView reloadData];
}
}
Я установил fetchedResultsController
на nil
и выполнил еще одну выборку для обновления нового содержимого.
Что меня беспокоит, так это то, что я видел ссылки на различных форумах, намекающие на то, что изменение контекста должно автоматически вызывать изменения в fetchedResultsController и, возможно, этот второй выбор не нужен.На данный момент я не реализовал разделы.
Другая проблема заключается в том, что код просто делает строку исчезающей без какой-либо анимации.
Может быть, введена какая-нибудь приятная анимация?