我有一个希望是简单的问题 - 我有两个实体 - List 和 ListItem - 它们之间建立了一对多的关系,一切都很好。
当我尝试执行 fetchrequest 时,我的问题就出现了,它将返回由 listitem 的属性划分的 listitems。我无法直接在 listItem 对象上执行 fetchrequest,因为无法说“Where List = 'xxxxx'',所以我有如下内容:
- (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;
}
现在,这个错误是因为它说我不能在排序描述符中使用一对多关系 - 但它也需要我有一个排序描述符,所以我不确定这样做的正确方法。任何帮助都会很棒。