Во-первых, из скриншота видно, что атрибут вашей связи сущности Session называется exercises
, а не exercise
.
Кроме того, мне кажется, что это сработает, если вы будете искать не сущность Session, а сущность Exercise, а затем выполнять итерацию по полученному массиву для извлечения сеансов.
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:"name == %@", exerciseName]];
NSEntityDescription *exerciseEntity = [NSEntityDescription entityForName:@"Exercise" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:exerciseEntity];
...
NSArray *results = [managedObjectContext executeFetchRequest:fetchRequest error:&error];
...
NSMutableArray *mutableSessionArray = [NSMutableArray array];
for (Exercise *ex in results) {
Session *session = [ex exercises];
if (session) [mutableSessionArray addObject:session];
}
self.sessionArray = [NSArray arrayWithArray:mutableSessionArray];
Взаимосвязь сущности Упражнения, называемой exercises
, можно назвать session
для ясности.Я бы порекомендовал переименовать его.
Кстати, вы также можете написать =
вместо ==
, насколько я знаю, они эквивалентны.В разделе Руководство по программированию предиката о синтаксисе строки формата предиката написано:
=, ==
The left-hand expression is equal to the right-hand expression.