地図上のスポットを表す管理対象オブジェクトがあります。これらのポイントには、ゼロから多くのタイプがあります。断面テーブルビューも表示したい。タイプがMapPOIオブジェクトの単一の値である場合、これをNSFetchedResultsControllerで機能させました。しかし、タイプが「タイプ」と呼ばれる「MapPOI」間の関係を持つ別のオブジェクトにあるので、クエリを作成するにはどうすればよいですか(できますか?)
オリジナル:
- (NSFetchedResultsController *)newFetchedResultsControllerWithSearch:(NSString *)searchString
{
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"MapPOI"];
if(searchString.length)
{
request.predicate = [NSPredicate predicateWithFormat:@"name CONTAINS[cd] %@", searchString];
}
request.sortDescriptors = [NSArray arrayWithObjects:[NSSortDescriptor sortDescriptorWithKey:@"type" ascending:YES ],[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:YES ],nil ];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:self.campus.managedObjectContext
sectionNameKeyPath:@"type"
cacheName:nil];
aFetchedResultsController.delegate = self;
NSError *error = nil;
if (![aFetchedResultsController performFetch:&error])
{
NSLog(@"Error performing institution fetch with search string %@: %@, %@", searchString, error, [error userInfo]);
}
return aFetchedResultsController;
}
私は次のようなものを試しました
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
managedObjectContext:self.campus.managedObjectContext
sectionNameKeyPath:@"types.name"
cacheName:nil];
しかし、それが原因で
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid to many relationship in setPropertiesToFetch: (types.name)'