2010-07-30 5 views
0

J'ai une application iPhone CoreData très basique. Après avoir forcé l'application à générer le fichier sqlite, je l'ai pris et l'ai pré-rempli avec un enregistrement pour tester le chargement dans tableview.CoreData ne récupère aucune ligne

J'ai rencontré un problème, car CoreData ne semble pas trouver la ligne dans la table.

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView 
{ 
    return [fetchedResultsController sections] count]; 
} 


- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{  
    id <NSFetchedResultsSectionInfo> sectionInfo = [[fetchedResultsController sections] objectAtIndex:section]; 
    return [sectionInfo numberOfObjects]; 
} 

La première fonction renvoie toujours une et la deuxième fonction renvoie toujours zéro. Puisque la table pense qu'il n'y a pas de lignes, elle ne tape jamais cellForRowAtIndexPath, donc aucune de mes données n'est chargée.

Je peux cependant voir ma structure de table viewDidLoad avec le code suivant:

if(!managedObjectContext){ 
    managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext]; 
} 

NSFetchRequest *request = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Assessment" inManagedObjectContext:managedObjectContext]; 
[request setEntity:entity]; 
for (NSPropertyDescription *property in entity) 
{ 
    NSLog(@"%@", property.name); 
} 
NSError *error = nil; 
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy]; 
[request release]; 

Maintenant, il me semble que rien dans le reste de mon code génère toujours un NSFetchRequest parce que je ne frappe cellForRowAtIndex. Mais j'ai aussi basé la majeure partie de ce code sur l'exemple de Recette, et il semble que ça se charge de la même manière (et ça marche).

Je suis sûr qu'il me manque quelque chose d'évident ici, quelqu'un peut-il me diriger dans la bonne direction?

Le code peut être trouvé dans son intégralité here.

Répondre

2

Le problème est presque certainement dans la configuration du contrôleur de résultats récupérés, par ex. mauvaise entité, mauvais prédicat etc.

+0

Merci! J'ai en quelque sorte ignoré la mise en place du contrôleur de résultats récupérés du tout. Je savais que c'était quelque chose de simple. –

Questions connexes