views:

26

answers:

1

Hi Everyone,

I am trying to resolve this for days at this stage and I'm hoping you can help.

I have two ViewControllers which query two different tables from the same database using Core Data. The first ViewController is opened with the app and displays fine. The second is called from within the first ViewController, using a pretty standard fetch setup:

- (NSFetchedResultsController *)fetchedClients {
    // Set up the fetched results controller if needed.
    if (fetchedClients == nil) {
        // Create the fetch request for the entity.
        NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
        // Edit the entity name as appropriate.
        NSEntityDescription *entity = [NSEntityDescription entityForName:@"Clients" 
              inManagedObjectContext:managedObjectContext];
        [fetchRequest setEntity:entity];




        // Edit the sort key as appropriate.
        NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"clientsName" ascending:YES];
        NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];

        [fetchRequest setSortDescriptors:sortDescriptors];

        // Edit the section name key path and cache name if appropriate.
        // nil for section name key path means "no sections".
        NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] 
                 initWithFetchRequest:fetchRequest
                 managedObjectContext:managedObjectContext
                 sectionNameKeyPath:nil
                 cacheName:@"Root"];
        aFetchedResultsController.delegate = self;
        self.fetchedClients = aFetchedResultsController;

        [aFetchedResultsController release];
        [fetchRequest release];
        [sortDescriptor release];
        [sortDescriptors release];
    }

 return fetchedClients;
}    

When I call [self.fetchedClients sections], I get a nil (0x0) return.

I have examined the database using an external application to ensure data exists in the "Clients" table.

Can anyone think of a reason why [self.fetchedClients sections] would return nil?

Many thanks for any help you can provide.

Regards,

Chris

+1  A: 

Are you compiling against 3.0? Thee is a bug in 3.0 that was fixed in 3.1 that can cause this issue.

update

Are you calling -performFetch: on the returned NSFetchedResultsController? I dont't see it in the code you posted.

Marcus S. Zarra
Thanks. Yes. Latest and greatest (ish) 3.1.3
Chris
That's the trick! Thanks very much for your help.
Chris