2009-11-27 6 views
0

J'essaie de supprimer un objet géré par un NSFetchedResultsController dans un UITableView - et j'essaie de le faire à partir d'une vue séparée via les boutons Ajouter/Supprimer. Cependant, il semble que le contrôleur et la table se détraquent quand je passe d'une vue à l'autre et je ne peux pas arrêter de comprendre pourquoi. Voici l'erreur que j'obtiens - malheureusement, cela ne se produit pas toujours selon le chemin que je prends à travers l'application:Erreur lors de la suppression d'un fichier UITableView contrôlé NSFetchedResultsController en dehors de la vue de la table

Erreur d'application grave. Exception a été pris au cours du traitement du changement de base de données: *** - [NSCFArray removeObjectAtIndex:]: index (6) au-delà des limites (6) avec userInfo (null)

Je peux voir mes méthodes de délégués s'appellent correctement et supprimer le code est très simple et je ne vois aucune erreur là-bas. Toutes les pensées/conseils de débogage seraient très appréciés.

Répondre

1

J'ai rencontré un problème similaire. La seule solution que je trouve est jusqu'à présent à re tirée par les cheveux du NSFetchedResultsController:

if (![[self resultsController] performFetch:&error]) { 
    NSLog(@"%@:%s Error refreshing the fetch controller %@", [self class], _cmd, 
     [error localizedDescription]); 
    NSAssert(NO, @"Failed to refresh the fetch controller"); 
} 
0

Je ne sais pas si nous avions la même question, mais mon problème a été résolu ce qui suit:

(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
return self.fetchedResultsController.sections.count;} 

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