2010-10-26 6 views
1

J'ai un NSTimer exécuté dans une classe partagée. Fondamentalement, il s'exécute une fois, et la deuxième fois qu'il s'exécute, il vient de tuer l'application entière.Crash NSTimer avec EXC_BAD_ACCESS dans la classe partagée

Voilà comment je fais la méthode NSTimer

myTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 
              target:self 
              selector:@selector(moveMe) 
              userInfo:nil 
              repeats:YES]; 

moveMe est juste une méthode vide pour l'instant. Donc, il ne devrait pas être quelque chose qui se passe dans moveMe.

Quelqu'un a-t-il déjà ressenti cela?

+0

La minuterie que vous avez affichée ne fonctionnera qu'une seule fois. Alors est-ce que vous le rééchelonnez à nouveau? Aussi, est-ce que 'self' est le singleton dans ce cas? (en d'autres termes, est ce minuteur créé dans une méthode dans GlobalClass) –

+0

Hey Firoze, oui c'est censé être répétitions: OUI. J'ai oublié de changer ça, mais ça ressemble à frapper ce mouvement. La première fois, je l'ai tué. Oui self est la classe singleton. Merci, Tee – teepusink

Répondre

1

Il semble qu'il vous manque le deux-points dans votre nom de sélecteur. Le sélecteur pour NSTimer prend comme argument un NSTimer. Votre code qui crée la minuterie devrait ressembler à ceci:

myTimer = [NSTimer scheduledTimerWithTimeInterval:5.0 
              target:self 
             selector:@selector(moveMe:) 
             userInfo:nil 
              repeats:NO]; 

Notez le côlon après moveMe. Votre méthode devrait alors ressembler à ceci:

- (void)moveMe:(NSTimer *)aTimer { 
    // Code 
}