Vous avez suivi le tutoriel Core Data sur Apple's developer site, et tout est bon jusqu'à ce que je dois ajouter quelque chose à la boutique récupérée. Je reçois cette erreur après une construction réussie et la charge lorsque je tente d'ajouter un nouvel élément à la liste:Récupérer des données de base pour Tableview sur iPhone - Tutoriel me laisse avec des plantages lors de l'ajout d'éléments à une liste
Mettre fin application en raison d'une exception non interceptée « NSInternalInconsistencyException », motif: « mise à jour invalide: numéro incorrect de lignes section 0. Le nombre de lignes contenues dans une section existante après la mise à jour (0) doit être égal au nombre de lignes contenues dans cette section avant la mise à jour (0), plus ou moins le nombre de lignes insérées ou supprimées de cette section (1 inséré, 0 supprimé).
En raison du fait que le téléchargement va par l'amende, et que si je remplace le fetching avec eventList = [[NSMutableArray alloc] init]
cela fonctionne comme prévu (sans persistence, bien sûr), je suis porté à croire que le problème vient de ne pas créer le tableau Mutable correctement. Voici la partie problématique du code:
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Event" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"creationDate" ascending:NO];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:sortDescriptor, nil];
[request setSortDescriptors:sortDescriptors];
[sortDescriptors release];
[sortDescriptor release];
NSError *error;
NSMutableArray *mutableFetchResults = [[managedObjectContext executeFetchRequest:request error:&error] mutableCopy];
if (mutableFetchResults = nil) {
//Handle the error
}
[self setEventList:mutableFetchResults];
[mutableFetchResults release];
[request release];
J'ai essayé commutant les NSArray
s dans le deuxième morceau avec NSMutableArray
s, mais je reçois toujours la même erreur.
Pour référence, la section de code qui jette l'erreur lorsque je tente d'ajouter une entrée est ici:
[eventList insertObject:event atIndex:0];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
[self.tableView scrollToRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0] atScrollPosition:UITableViewScrollPositionTop animated:YES];
il des erreurs sur l'appel à insertRowsAtIndexPaths
.
Merci à l'avance pour toute aide
--edit À ADD--
Je dois souligner que le nombre de lignes est appelé en retournant [eventList count]
Je ne peux pas croire que j'ai fait une erreur aussi stupide. Cela l'a réparé. Je vais bientôt migrer vers 'NSFetchedResultsController'. J'essaie juste d'avoir quelques notions de base avant d'aller dans cette direction. Merci pour l'aide. –