Как получить все записи NSFetchedResultsController/NSManagedObjectContext?

У меня есть хорошее рабочее приложение iphone, которое работает с основными данными. Я использую NSFetchedResultsController/NSManagedObjectContext, как описано в различных учебниках.

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

Мне как-то нужно получить список всех данных, которые у меня есть в моем контексте.

Я думал, что смогу сделать подход, похожий на способ получения данных для UITableView.

id <NSFetchedResultsSectionInfo> sectionInfo = [[_fetchedResultsController sections] objectAtIndex:section];

Это не удается, потому что у меня действительно несколько разделов. Теперь я могу пройти через все разделы и сделать свой собственный IndexPath доступ к моим данным с помощью:

MyData *info = [_fetchedResultsController objectAtIndexPath:indexPath];

Но я думаю, что есть еще один способ, которого я еще не нашел, и надеюсь, что кто-то может помочь мне здесь.

Большое спасибо.

Ответ 1

Вы просто ищете способ получить все объекты от вас NSFetchedResultsController? Если это так, используйте это.

NSArray *fetchedData = [_fetchedResultsController fetchedObjects];

Если у вас более 1 объекта, создайте fetchrequest для каждого объекта. Что-то вроде этого должно дать вам все ваши объекты.

NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
NSEntityDescription *entity = [NSEntityDescription entityForName:self.entityName inManagedObjectContext:self.managedObjectContext];
[request setEntity:entity];
NSError *error;
NSArray *results = [self.managedObjectContext executeFetchRequest:request error:&error];

Ответ 2

Если вы хотите получить все объекты для определенного раздела, вы можете сделать это:

NSArray *sectionObjects = [_fetchedResultsController.sections[section_number] objects];