我有三个型号:核心数据:计数跨越关系
+----------+ +--------------+ +------+
| Occasion | <--->> | GiftOccasion | <--->> | Gift |
+----------+ +--------------+ +------+
我一直希望得到的场合名称,所有符合特定标准的礼品计数。目前我得到的年份和名称排序的场合不同的列表:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
[request retain];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Occasion" inManagedObjectContext:[self managedObjectContext]];
[request setEntity:entity];
[request setResultType:NSDictionaryResultType];
[request setPropertiesToFetch:[NSArray arrayWithObjects:@"name", @"year", nil]];
[request setReturnsDistinctResults:YES];
NSSortDescriptor *yearDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"year" ascending:NO selector: @selector(caseInsensitiveCompare:)] autorelease];
NSSortDescriptor *nameDescriptor = [[[NSSortDescriptor alloc] initWithKey:@"name" ascending:YES selector: @selector(caseInsensitiveCompare:)] autorelease];
NSArray *descriptors = [NSArray arrayWithObjects:yearDescriptor, nameDescriptor, nil];
[request setSortDescriptors:descriptors];
NSError *error = nil;
NSArray *results = [[self managedObjectContext] executeFetchRequest:request error:&error];
...但我完全难倒如何获得的Gift
计数。有没有一种简单的方法,还是我需要遍历每个GiftOccasion
和相关的Gift
并将它们加在一起?
ETA:请注意,我是生成不同的结果,在这里,没有直接获取模型。我假设我不得不运行另一个请求来获取这些信息,但如果可能不这样做,那会更好。
谢谢!
没错,但我正在经历另一段关系。我是否需要手动遍历`GiftOccasion`并将每个`Gift`的计数加起来?实际上没有更好的方法吗?另外,我正在使用`setReturnsDistinctResults:YES`,这也是一个问题。 – 2010-12-23 02:11:33