Je suis coincé dans un problème et après 2 jours de recherche, j'ai trouvé une solution, mais je n'ai pas compris pourquoi cela fonctionne.NSFetchedResultsController n'a pas renvoyé de données
D'abord, je suis initialisés NSFetchedResultsController en utilisant le code suivant (il ressemble à beaucoup de généré automatiquement):
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController != nil)
return fetchedResultsController;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Profile"
inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
[fetchRequest setFetchBatchSize:20];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"lastName" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:self.managedObjectContext
sectionNameKeyPath:nil
cacheName:@"Root"];
aFetchedResultsController.delegate = self;
self.fetchedResultsController = aFetchedResultsController;
NSError *error = nil;
//[aFetchedResultsController performFetch:&error];
[aFetchedResultsController release];
[fetchRequest release];
[sortDescriptor release];
[sortDescriptors release];
return fetchedResultsController;
}
Jetez un oeil à la chaîne commenté - il n'y avait pas de ces chaînes et quand j'ai demandé des données - je n'ai pas eu (et il était là!). Quand j'ai décommenté cette ligne, ça commence à fonctionner. Cela semble évident, mais tous les exemples que j'ai vus auparavant n'avaient pas cette ligne. Et ils travaillent. Comment ça peut être? Je veux juste savoir ce que je fais mal.
Vous avez raison! C'est fait dans viewDidLoad .. Comment pourrais-je le manquer ... :( –