5
我有星期模型,将Day作为子对象。周模型中有“天”关系属性来访问所有关联的日期对象。日模式具有持续时间属性。如何在CoreData上使用@sum
如何计算指定周对象的一天持续时间总和?让代码示例如何使用@sum函数创建一个谓词对象会很好。
也有可能有“计算”周WeekDuration属性给定值 相关日期的持续时间在取回?对于这个问题,这将是最优雅的解决方案,但我不认为CoreData可能会这样。
我有星期模型,将Day作为子对象。周模型中有“天”关系属性来访问所有关联的日期对象。日模式具有持续时间属性。如何在CoreData上使用@sum
如何计算指定周对象的一天持续时间总和?让代码示例如何使用@sum函数创建一个谓词对象会很好。
也有可能有“计算”周WeekDuration属性给定值 相关日期的持续时间在取回?对于这个问题,这将是最优雅的解决方案,但我不认为CoreData可能会这样。
下面是一个例子,你将如何设置你的查询只找到周,其中天期限的总和大于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:@"[email protected] > 100"];
NSError *error = nil;
NSArray *results = [context executeFetchRequest:fr error:&error];
if (error) {
NSLog(@"ERROR: %@", error);
}
NSLog(@"Results: %@", results);
实际上,你可以实现一个类似的计算性能只需将它添加到支持您的Week实体的NSManagedObject子类中:
- (NSNumber *) duration {
return [self valueForKeyPath:@"[email protected]"];
}