У меня есть UITableView, который я заполняю из основных данных с помощью следующего NSfetchedResultsController:
- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
return _fetchedResultsController;
}
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:_managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sort = [[NSSortDescriptor alloc] initWithKey:@"date" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sort]];
[fetchRequest setFetchBatchSize:20];
NSFetchedResultsController *theFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:_managedObjectContext sectionNameKeyPath:nil cacheName:@"Root"];
self.fetchedResultsController = theFetchedResultsController;
_fetchedResultsController.delegate = self;
return _fetchedResultsController;
}
У меня есть другой метод, прикрепленный к кнопке «Добавить», который добавляет новый элемент основных данных в базу данных. Как только объект добавлен, моя таблица обновляется должным образом, и новый объект отображается в правильном месте в соответствии с сортировкой «дата» в извлеченном контроллере результатов. Мой новый объект добавляется с использованием сегодняшней даты для его атрибута «дата». Я добавляю объект следующим образом:
NSManagedObject *newEvent = [NSEntityDescription insertNewObjectForEntityForName:@"Event" inManagedObjectContext:context];
[newEvent setValue:@"New Client" forKey:@"name"];
[newEvent setValue:[NSDate date] forKey:@"date"];
NSError *error;
if (![context save:&error]) {
NSLog(@"Core Data error! Could not save: %@", [error localizedDescription]);
}
Теперь, как часть моего метода «Добавить», мне нужно выбрать строку, в которую был добавлен новый элемент, и перейти к экрану редактирования. Очевидно, что в зависимости от других дат элементов в таблице это может быть где угодно.
Я хочу выбрать это так, но у меня нет indexPath:
[self.eventListTable selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionBottom];
Как определить, в какой строке (indexPath) был добавлен мой новый объект, чтобы я мог правильно выбрать его?
Спасибо!