J'ai la méthode suivante dans mon sous-classe UITableViewController:Programme signal reçu: EXC_BAD_ACCESS
-(void)populateDataStorage{
NSString *path = [[NSBundle mainBundle] pathForResource:@"FakeData" ofType:@"plist"];
if(path){
NSArray *plistData = [[NSArray alloc] initWithContentsOfFile:path];
NSEnumerator *enumerator = [plistData objectEnumerator];
NSArray *personResults;
Photo *photo;
Person *person;
id currItem = [enumerator nextObject];
while (currItem != nil) {
photo = (Photo *)[NSEntityDescription insertNewObjectForEntityForName:@"Photo" inManagedObjectContext: [[FlickrFetcher sharedInstance] managedObjectContext]];
photo.name = [currItem objectForKey:@"name"];
photo.path = [currItem objectForKey:@"path"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = %@", [currItem objectForKey:@"user"]];
personResults = [[FlickrFetcher sharedInstance] fetchManagedObjectsForEntity:@"Person" withPredicate:predicate];
if ([personResults count] > 0) {
person = [personResults objectAtIndex:0];
}
else {
person = (Person *)[NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:[[FlickrFetcher sharedInstance] managedObjectContext]];
person.name = [currItem objectForKey:@"user"];
}
photo.person = person;
[person addPhotosObject:photo];
NSLog(@"Photo %@ added for user %@", photo.name, person.name);
currItem = [enumerator nextObject];
}
[plistData release];
}
}
Et je l'appelle dans mes applications de la méthode de didFinishLaunchingWithOptions dans mon AppDelegate, la méthode est également dans le même AppDelegate, quand il est appelé, j'obtiens l'erreur qu'il dit lors du débogage, si je ne débogue pas la ligne, il lancera la méthode et chargera sans problème. Si je ne débogue pas du tout, il n'appellera pas la méthode.
EDIT: Modifié le code en fonction de la réponse le problème reste toujours le même, si je ne fais rien, rien ne se passe mais lors du débogage je reçois l'erreur. Lorsque je débogue toute la méthode, aucune erreur n'est affichée.
J'ai modifié le code et mis à jour mon post, le problème persiste – 8vius
Comment avez-vous modifié le code? Pouvez-vous ajouter le code mis à jour à votre message? – highlycaffeinated
Ce que j'ai fait était de définir l'objet personne dans les deux cas de l'instruction if, pour corriger ce que vous avez dit, de cette façon quand j'accède à la propriété de son nom, il est toujours défini sur quelque chose – 8vius