我有三個型號:核心數據:計數跨越關係
+----------+ +--------------+ +------+
| 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