我有一个类别实体,有很多费用。我想获得给定月份内某个类别的所有费用总和:
- (NSNumber *)totalForMonth:(NSDate *)date
{
...
NSPredicate *sumPredicate = [NSPredicate predicateWithFormat:@"(ANY %@ <= expenses.created_at) AND (ANY expenses.created_at <= %@)",
[date beginningOfMonth], [date endOfMonth]];
NSFetchRequest *req = [[[NSFetchRequest alloc] init] autorelease];
[req setPredicate:sumPredicate];
[req setEntity:entity];
NSError *error;
NSArray *fetchedObjects = [managedObjectContext executeFetchRequest:req error:&error];
return [fetchedObjects valueForKeyPath:@"[email protected] /cdn-cgi/l/email-protection"];
}
您以正确的语法使用@sum。最有可能的是,您刚刚弄错了键路径的另一部分,例如用“费用”代替“开支”。或者,您可能获取了错误的实体。
如果您只想获取此总和,请执行属性获取并将返回类型设置为字典。 (请参阅 NSFetchRequest 和核心数据编程指南)文档了解详细信息。它返回一个字典数组,其唯一的键是属性名称,其唯一的值是一个托管对象的选定属性的值。与获取完整对象相比,它更快并且使用更少的资源。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)