Quelque chose d'étrange se passe avec mon application iPhone. J'utilise Core Data pour stocker des données dans une base de données SQLite. La première fois que mon application démarre, j'essaie de lire une table pour retourner toutes les lignes pour remplir un UITableView avec une liste de choses pour l'utilisateur à sélectionner. S'ils ont choisi le premier élément de la liste, j'obtiens une exception EXC_BAD_ACCESS. S'ils choisissent un autre élément, tout semble OK. Voici l'exemple de code: Sport et Team sont NSManagedObjects. sports est un objet NSArray of Sport récupéré à l'aide d'un NSFetchedResultsController (fetchedObjects). Je peux afficher la liste des objets fins dans le UITableView (j'utilise le même tableau pour l'appel cellForRowAtIndexPath() sans aucun problèmeEXC_BAD_ACCESS NSArray de ManagedObjects (Données de base)
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
Sport *sport = (Sport *)[sports objectAtIndex:indexPath.row];
if (teamSetup) {
if (team.sport != sport) {
[team setSport:sport]; <-- this is where the EXC_BAD_ACCESS happens
NSError *error;
[team.managedObjectContext save:&error];
}
[self.navigationController popViewControllerAnimated:YES];
} else {
// .. do some other stuff
}
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
MISE À JOUR: Il semble affecter seulement le dernier enregistrement du NSArray au lieu de la première Après avoir redémarré l'application, le problème disparaît et le code fonctionne comme prévu: (