У меня есть родительский объект в моей модели Event. И две дочерние сущности: день рождения, юбилей. Я использую функцию наследования сущностей, встроенную в данные Core, так что родительским объектом для дня рождения и годовщины является Event.
Так что я делаю выборку, используя следующее:
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
// Set the batch size to a suitable number.
[fetchRequest setFetchBatchSize:20];
// Edit the sort key as appropriate.
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"start_date" ascending:YES];
NSArray *sortDescriptors = [NSArray arrayWithObjects:sortDescriptor, nil];
etc...
Теперь я хочу отсортировать выбранные объекты по типу события, дню рождения или годовщине.
Как мне это сделать? Я попробовал:
for (Birthday *birthday in _fetchedResultsController.fetchedObjects){
[birthdayObjects addObject:birthday];
}
for (Anniversary *anniversary in _fetchedResultsController.fetchedObjects){
[anniversaryObjects addObject:anniversary];
}
Но это просто добавляет все объекты в fetchedObjects к каждому массиву.
Есть идеи или я поступаю неправильно?
ОБНОВЛЕНИЕ :
Разобрался, используя это:
for (Event *event in _fetchedResultsController.fetchedObjects){
if ([event isKindOfClass:[Birthday class]]){
[birthdayObjects addObject:event];
}else{
[anniversary addObject:event];
}
}
Но если есть лучший способ, я открыт для этого! Благодарю.