できれば簡単な質問ですが、List と ListItem という 2 つのエンティティがあり、それらの間に 1 対多の関係が設定されています。
私の問題は、listitem の属性によって分割された listitems を返す fetchrequest を実行しようとしているときに発生します。「Where List = 'xxxxx'」と言う方法がないため、listItem オブジェクトに対して直接 fetchrequest を実行することはできません。したがって、次のようなものがありました。
- (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;
}
さて、このエラーは、ソート記述子で 1 対多の関係を使用できないと言っているためですが、ソート記述子が必要であるため、これを行う正しい方法がわかりません。どんな助けでも素晴らしいでしょう。