Это дополнительный вопрос к предыдущему сообщению сохранение недавних поисков с основными данными.
Чтобы сгруппировать результаты поиска, у меня есть сущность «Запись» и сущность «История». Entry.history — это отношение к History. History.entries — это отношение ко многим к Entry (обратное Entry.history). История имеет атрибут даты createdAt. Я пытаюсь выяснить, как получить все объекты Entry, принадлежащие самому последнему объекту History, в NSFetchedResultsController.
Я могу получить самый последний объект истории, например так
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"History" inManagedObjectContext:context];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"createdAt" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[request setFetchLimit:1];
NSArray *results = [context executeFetchRequest:request error:&error];
History *history = (History *)[results objectAtIndex:0];
А затем объекты Entry в NSFetchedResultsController вот так
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"history == %@", history];
request = [[NSFetchRequest alloc] init];
entity = [NSEntityDescription entityForName:@"Entry" inManagedObjectContext:context];
[request setEntity:entity];
[request setPredicate:predicate];
fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request managedObjectContext:context sectionNameKeyPath:nil cacheName:@"Root"];
Но я хочу сделать это в одном запросе. Обратите внимание, что меня интересует только fetchedResultsController, хранящий результаты Entry.