Un de mes utilisateurs rapporte un crash sur son appareil, un iPhone 3GS. Les autres périphériques du même type ne signalent pas de comportement similaire. Il m'a envoyé un journal de bord et, en le lisant, je ne sais pas comment procéder. J'espère que je n'interprète pas correctement le journal de plantage mais il ne semble pas que mon action ait été encore appelée.Contrôle d'intégrité: UIBarButtonItem se bloque en essayant d'effectuer une action
Voici comment je crée et la mise en place du UIBarButtonItem:
- (void)viewDidLoad {
[super viewDidLoad];
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addLog:)];
self.navigationItem.rightBarButtonItem = addButton;
[addButton release];
}
Ceci est la ma méthode d'action:
- (IBAction)addLog:(id)sender {
MyViewController *myController = [[MyViewController alloc] initWithNibName:@"MyNib" bundle:nil];
UINavigationController *subNavigationController = [[UINavigationController alloc] initWithRootViewController: myController];
[self presentModalViewController:subNavigationController animated:YES];
[myController release];
[subNavigationController release];
}
Ceci est le journal de l'accident:
Exception Type: EXC_CRASH (SIGABRT) Exception Codes: 0x00000000, 0x00000000Crashed Thread: 0 Thread 0 Crashed: 0 libSystem.B.dylib 0x0007e98c __kill + 81 libSystem.B.dylib 0x0007e97c kill + 4 2 libSystem.B.dylib 0x0007e96e raise + 10 3 libSystem.B.dylib 0x0009361a abort + 34 4 MyApp 0x000042e8 0x1000 + 13032 5 CoreFoundation 0x00058ede -[NSObject performSelector:withObject:withObject:] + 18 6 UIKit 0x0004205e -[UIApplication sendAction:to:from:forEvent:] + 78 7 UIKit 0x00094d4e -[UIBarButtonItem(Internal) _sendAction:withEvent:] + 86 8 CoreFoundation 0x00058ede -[NSObject performSelector:withObject:withObject:] + 18 9 UIKit 0x0004205e -[UIApplication sendAction:to:from:forEvent:] + 78 10 UIKit 0x00041ffe -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 26 11 UIKit 0x00041fd0 -[UIControl sendAction:to:forEvent:] + 32 12 UIKit 0x00041d2a -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 350 13 UIKit 0x0004263e -[UIControl touchesEnded:withEvent:] + 330 14 UIKit 0x00041656 -[UIWindow _sendTouchesForEvent:] + 318 15 UIKit 0x00041032 -[UIWindow sendEvent:] + 74
Merci! J'ai été capable de déterminer ce qui cause le crash avec cette information. – Giao
Pas de problème. Gardez à l'esprit cependant, pour les prochaines versions, assurez-vous de sauvegarder vos fichiers .dSYM et App Bundles. Xcode 3.2.2 peut avoir une fonctionnalité qui permet de l'appliquer;) – Jasarien