Это всего лишь предположение, но я думаю, что сработает следующее:
РЕДАКТИРОВАТЬ - я только что проверил с простым делом, что это работает
Пусть все ваши сущности событий (Sleep, Food, Exercise) наследуются от сущности базового класса (вы могли бы назвать это чем-то вроде «Event»), а затем используйте следующее при настройке NSFetchRequest, который будет использовать ваш NSFetchedResultsController :
NSFetchRequest *fr = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:_managedObjectContext];
[fr setEntity:entity];
Теоретически, это может привести к тому, что ваш контроллер результатов выдаст все ваши существующие сущности, которые наследуются от Событие . Вы также можете поместить отношение в Day в базовом классе (Event), потому что все ваши подклассы имеют это общее. Кроме того, вам нужно будет указать предикат для запроса на выборку, чтобы захватывать события только в определенный день, за которым вы следите.
Дайте мне знать, если это работает!