2010-10-10 4 views
1

J'utilise des données de base et j'ai une entité définie appelée LogRecord. Ailleurs cela est peuplé d'objets en utilisant:FetchedResultsController vide dans les données de base

 LogRecord *rec = [NSEntityDescription insertNewObjectForEntityForName:@"LogRecord" 
                 inManagedObjectContext:managedObjectContext]; 
     [rec timestampNow]; 

     rec.moodType = [NSNumber numberWithUnsignedInteger:i]; 
     rec.moodValue = value; 

     NSError *error = nil; 
     if (![rec.managedObjectContext save:&error]) { 
      [DataUtil displayFatalError:error message:@"Failed to save log entry"]; 
      errors++; 
     }   

J'ai vérifié et la base de données SQLite sous-jacente a des enregistrements en elle après avoir utilisé ce code.

Cependant, lorsque je tente d'interroger les données en utilisant ceci:

- (NSFetchedResultsController *)fetchedResultsController { 
    if (fetchedResultsController == nil) { 

    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 

    NSEntityDescription *entity = [NSEntityDescription entityForName:@"LogRecord" 
               inManagedObjectContext:managedObjectContext]; 
    [fetchRequest setEntity:entity]; 

    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"timestamp" ascending:NO]; 
    NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil]; 
    [fetchRequest setSortDescriptors:sortDescriptors]; 

    // nil for section name key path means "no sections". 
    NSFetchedResultsController *aFetchedResultsController = 
     [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest 
              managedObjectContext:managedObjectContext 
               sectionNameKeyPath:nil 
                 cacheName:nil]; 
    aFetchedResultsController.delegate = self; 
    self.fetchedResultsController = aFetchedResultsController; 

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

    return fetchedResultsController; 
}  

Il arrive vide comme en témoigne [[self.fetchedResultsController sections] count] retour zéro.

Une idée de comment je pourrais déboguer cela? Il fonctionnait avant que j'aie essayé de casser ce code dans un UIViewController différent.

Répondre

7

N'avez pas l'esprit .... D'une manière ou d'une autre l'appel à [[self fetchedResultsController] performFetch:&error] dans viewDidLoad a été supprimé.

Questions connexes