【发布时间】:2010-12-22 22:29:25
【问题描述】:
我有三个模型:
+----------+ +--------------+ +------+
| 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 和相关的Gifts 并将它们加在一起?
ETA:请注意,我在这里生成不同的结果,而不是直接获取模型。我假设我必须运行另一个请求才能获取此信息,但如果可以不这样做,那就更好了。
谢谢!
【问题讨论】:
标签: objective-c core-data ios