2
我已經得到了希望的一個簡單問題 - 我有兩個實體 - List和ListItem - 並且它們之間建立了一對多的關係,所有好。iPhone coredata提取請求,圍繞關係和部分的基礎知識
我試圖執行fetchrequest時會出現問題,該fetchrequest將返回由listitem屬性分割的listitems。因爲它是說我
- (NSFetchedResultsController *)getListItems {
// Init a fetch request
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"List" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"listItem.productName" ascending:YES selector:nil];
NSArray *descriptors = [NSArray arrayWithObject:sortDescriptor];
[fetchRequest setSortDescriptors:descriptors];
// Init the fetched results controller
NSError *error;
self.globalFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:@"listItem.productName" cacheName:@"listItems"];
self.globalFetchedResultsController.delegate = self;
if (![[self globalFetchedResultsController] performFetch:&error]) NSLog(@"Error: %@", [error localizedDescription]);
[fetchRequest release];
[sortDescriptor release];
return self.globalFetchedResultsController;
}
現在,這樣的錯誤:直接上的listItem對象,我不能執行fetchrequest因爲沒有辦法說「凡列表='XXXXX」,所以我不得不像下面這樣不能在排序描述符中使用一對多關係 - 但它也要求我有一個排序描述符,所以我不確定這樣做的正確方法。任何幫助都會很棒。
謝謝,我沒有意識到我需要建立從列表項到列表對象的第二個反向關係 - 這樣做可以讓我指定上面的列表。 – tom 2009-11-17 15:51:41
不確定「第二反向關係」是什麼意思,但Apple強烈建議所有關係都是雙向的(並且Xcode會在缺少這些關係時給出編譯器警告)。 – gerry3 2009-11-17 16:14:43