Je travaille sur une application qui utilise un contrôleur de navigation. Quand je construis, je ne reçois aucune erreur ou avertissement. J'ai défini une méthode myMethod
dans le fichier FirstViewController.m
, puis dans viewDidLoad
j'appelle la méthode avec [self myMethod];
. Lorsque j'ai créé et exécuté à partir de la console, je n'ai rien reçu. Donc, je mets NSLog()
déclarations comme ceci:Pourquoi l'application plante-t-elle dans un simulateur d'iPhone? Comment puis-je réparer cela?
-(void) viewDidLoad {
NSLog(@"Entering viewDidLoad");
[self myMethod];
NSLog(@"Called myMethod");
[super viewDidLoad];
}
La console ne retourne jamais la deuxième déclaration NSLog, me porte à croire que les accidents d'applications tout en appelant la méthode.
Je l'ai essayé avec le jeu de simulation iOS 4.0.1 et iOS 4.1. Je construis contre iOS 4.1 SDK. J'apprécie vraiment toute aide que vous pouvez offrir.
Mise à jour: J'ai exécuté le débogueur, qui semble montrer le problème étant dans myMethod
. Je ne fais que quelques lignes de code dans cette méthode avant de recevoir "EXC_BAD_ACCESS". Les lignes de code sont les suivantes:
-(void)myMethod {
NSMutableArray *someStuff;
NSMutableArray *someMoreStuff;
stuffSections=[[NSMutableArray alloc] initWithObjects:@"Some Stuff",@"Some More Stuff",nil];
someStuff=[[NSMutableArray alloc] init];
someMoreStuff=[[NSMutableArray alloc] init];
[someStuff addObject:[[NSMutableDictionary alloc]initWithObjectsAndKeys:@"Item Name",@"name",@"Item Picture.png",@"picture",@"http://theurl.net/",@"url",@"1",@"itemCode",nil]];
Mais il semble que je ne peux pas aller au-delà de cette première tentative d'ajouter quelque chose au tableau someStuff
.
Définissez un point d'arrêt et utilisez le débogueur. Et effectivement exécuté avec le débogueur attaché (pas seulement la cible de débogage). – Eiko
Ok, j'ai placé le point d'arrêt immédiatement après [self myMethod]. Dans la console du débogueur, il est indiqué "Signal reçu du programme: 'EXC_BAD_ACCESS'." Je suis nouveau à ceci, cependant, et n'ai aucune idée de ce que ces résultats dans la fenêtre de débogueur signifient ... – scojac
Essayez de courir avec la commande + Y au lieu de la commande + R. Cela va démarrer avec le débogueur attaché. Lorsque votre programme tombe en panne, l'exécution s'arrêtera à la ligne fautive vous donnant une chance de découvrir où il se trouve et d'inspecter les valeurs de vos variables à ce moment. – Tommy