Вот пример того, как вы могли бы настроить свой запрос, чтобы найти только недели, в которых сумма продолжительности дней больше 100.
NSManagedObjectContext *context = ...;
NSManagedObjectModel *model = ...;
NSFetchRequest *fr = [[NSFetchRequest alloc] init];
fr.entity = [model.entitiesByName objectForKey:@"Week"];
//This predicate will be compiled into pure SQL
fr.predicate = [NSPredicate predicateWithFormat:@"days.@sum.duration > 100"];
NSError *error = nil;
NSArray *results = [context executeFetchRequest:fr error:&error];
if (error) {
NSLog(@"ERROR: %@", error);
}
NSLog(@"Results: %@", results);
Вы можете фактически реализовать вычисляемое свойство аналогичным образом, просто добавьте его в подкласс NSManagedObject, поддерживающий вашу сущность Week:
- (NSNumber *) duration {
return [self valueForKeyPath:@"days.@sum.duration"];
}