Ale*_*ler 5 iphone cocoa core-data objective-c
我有周模型,有Day作为子对象.在Week模型中有"days"关系属性来访问所有关联的Day对象.日模型具有持续时间属性.
如何确定指定Week对象的一天持续时间总和?如果有代码示例如何使用@sum函数创建谓词对象会很棒.
还有可能在Week类上有"计算"的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:@"days.@sum.duration > 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:@"days.@sum.duration"];
}
| 归档时间: | 
 | 
| 查看次数: | 5297 次 | 
| 最近记录: |