gpt4 book ai didi

iphone - 如何在 CoreData 中使用@sum

转载 作者:太空狗 更新时间:2023-10-30 03:50:23 26 4
gpt4 key购买 nike

我有一个以日为子对象的周模型。 Week 模型中有“days”关系属性来访问所有关联的 Day 对象。 Day 模型有 duration 属性。

如何计算指定周对象的一天持续时间总和?如果有代码示例如何使用 @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"];
}

关于iphone - 如何在 CoreData 中使用@sum,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1157377/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com