【发布时间】:2011-02-28 18:03:38
【问题描述】:
我有一个有很多费用的类别实体。我想获取给定月份某个类别的所有费用总和:
- (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:@"expenses.@sum.amount"];
}
此代码的问题在于它会引发异常,因为显然这不是在关系上使用 @sum 的方式。
【问题讨论】:
-
我也想知道这个问题的答案,因为我正在阅读 Apple 的文档,但它似乎从来没有按照它的建议去做。我通过对子活动的持续时间求和来得出活动的持续时间,这给了我同样的例外。
标签: iphone objective-c core-data