Question

Ok I am trying to grab a NSMutable Set. Yes I have a previous post on this but this is slightly different. I have A player entity and a team entity. It is set up as a one to many relationship... On a different view controller I added players to the team. Now I am trying to get that teams players to show up on a table view... I am fetching the information as follows.

- (NSFetchedResultsController *)fetchedResultsController {
if (_fetchedResultsController != nil) {
    return _fetchedResultsController;
}

NSString *entityName = @"Team"; 
NSLog(@"Setting up a Fetched Results Controller for the Entity named %@", entityName);

// 2 - Request that Entity

NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:entityName];

AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
_managedObjectContext = delegate.managedObjectContext;

// 4 - Sort it 
request.sortDescriptors = [NSArray arrayWithObject:[NSSortDescriptor sortDescriptorWithKey:@"players"
                                                                                 ascending:NO
                                                                                  selector:@selector(localizedCaseInsensitiveCompare:)]];

// 5 - Fetch it
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:request
                                                                    managedObjectContext:self.managedObjectContext
                                                                      sectionNameKeyPath:nil 
                                                                               cacheName:nil];
_fetchedResultsController.delegate = self;

return _fetchedResultsController;

}

Then on my cell for row at index path I am setting the Player object to the fetched results as follows

    Player *p = [_fetchedResultsController objectAtIndexPath:indexPath];

Then, I am setting the title of the cell like so.

cell.textLabel = p.firstName;

I am getting the error reason: 'to-many key not allowed her

I am wondering what am I doing wrong???

Was it helpful?

Solution

Figured it out! I was sorting on a one to many relationship which is a NO NO in Core Data. I switched to sort on the player object and added a predicate to find the proper players I needed.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top