Как использовать @sum с CoreData

Почему бы не попробовать использовать небуферизованный файл?

f = open('xyz.log', 'a', 0)

ИЛИ

sys.stdout = open('out.log', 'a', 0)
5
задан Aler 21 July 2009 в 05:00
поделиться

1 ответ

Вот пример того, как вы можете настроить свой запрос на поиск только недель, в которых сумма продолжительности дней больше 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"];
}
8
ответ дан 14 December 2019 в 04:45
поделиться