iphone – 如何在CoreData中使用@sum

iphone – 如何在CoreData中使用@sum,第1张

概述我有周模型,有Day作为子对象.在Week模型中有“days”关系属性来访问所有关联的Day对象.日模型具有持续时间属性. 如何确定指定Week对象的一天持续时间总和?如果有代码示例如何使用@sum函数创建谓词对象会很棒. 也可以在Week类上具有给定值的“计算”weekDuration属性 获取期间相关日期的总和?对于这些问题,这将是最优雅的解决方案,但我不相信CoreData可以做到这一点. 我有周模型,有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 sqlfr.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全部内容,希望文章能够帮你解决iphone – 如何在CoreData中使用@sum所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存