Code EXC_BAD_ACCESS 2 sur UIAlertView dans iOS6

J’essaie de comprendre pourquoi ce crash dans mon application.

Cela fonctionne parfaitement bien dans Xcode 4.4 exécuté dans le simulateur avec ios5.1, mais quand je passe dans xcode 4.5 et ios6, je reçois un code EXC_BAD_ACCESS 2. Voici mon code:

- (void) myMethod { UIAlertView *alertview = [[[UIAlertView alloc]initWithTitle:@"Title" message:@"message" delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil] autorelease]; alertview.tag = 1 [alertview show]; } 

cela me donne un code EXC_BAD_ACCESS 2 sur la ligne [UIAlertView show]

des idées?

Merci!

J’ai compris. J’ai le même problème, dans mon cas, il semble que la méthode soit lancée en arrière-plan maintenant (maintenant dans ios7, dans ios6, UIAlertView était automatiquement placé dans le thread principal comme @nodepond dit -thanks! -) ..

essayez de vous assurer que la méthode est affichée depuis le thread principal:

 [alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:YES]; 

Bonne chance!

C’est arrivé avec moi, même en 2014. Le problème est de vouloir utiliser un object déjà sorti.

Ce que j’ai mal fait:

 //class B with UIAletViewDelegate -(void) showAlert{ UIAlertView * alert = [[UIAlertView alloc] initWithTitle bla bla...]; [alert show]; } //class A viewDidLoad{ MyClassB *B = [[B alloc] init]; [B showAlert]; } 

Quelle est la bonne façon:

 //Class A @implementation A{ ClassB *B; } viewDidLoad{ B = [[B alloc] init]; [B showAlert]; }