我有以下核心数据模型:
我根据用户选择获取 PbsRow 的实体(用户可以选择保存在 jahr(年)和 monat(月)中的时间范围)。获取请求后,我有一个带有几个 PbsRow 实例的 NSArray。我想做的是计算属于每个 PbsRow 实体的所有 WarengruppeVK 实体(例如 netto)的总和。我曾尝试通过 valueForKeyPath 执行此操作,但这似乎对我不起作用:-(。
任何帮助将不胜感激。提前致谢!
我有以下核心数据模型:
我根据用户选择获取 PbsRow 的实体(用户可以选择保存在 jahr(年)和 monat(月)中的时间范围)。获取请求后,我有一个带有几个 PbsRow 实例的 NSArray。我想做的是计算属于每个 PbsRow 实体的所有 WarengruppeVK 实体(例如 netto)的总和。我曾尝试通过 valueForKeyPath 执行此操作,但这似乎对我不起作用:-(。
任何帮助将不胜感激。提前致谢!
因此,如果我理解正确,您想要所有现有的 WarengruppeVK-s?在这种情况下,只需创建一个NSFetchRequest
,将实体设置为WarengruppeVK
并保留谓词nil
。
希望这可以帮助!
编辑:
在这种情况下,您可以使用 for 浏览您获取的数据,并且每个实体都应该有一个NSSet
名为的属性,warengruppeVK
其中包含它的所有 WarengruppeVK。
您应该随意将托管对象子类视为您控制的子类。教他们新的技巧,比如回答年份。
// PbsRow.h
- (NSInteger)year;
// PbsRow.m
- (NSInteger)year {
// return some function of self.jahr that you can write
}
然后 ...
NSInteger warrenGroupeCount = 0;
for (PbsRow *pbsRow in fetchResults) {
if ([pbsRow year] == 2012)
warrenGroupeCount += pbsRow.warengruppeVK.count;
}
第一步:使用包含此谓词的获取请求获取您的 WarengruppeVK。
[NSPredicate predicateWithFormat:@"pbsrow IN %@", pbsRowArray];
第二步:使用键路径机制的值。
[warengruppeVKArray valueForKeyPath:@"@sum.netto"];