Comment puis-je passer un paramètre à la méthode appelée par un NSTimer? Mon timer ressemble à ceci:
[NSTimer scheduledTimerWithTimeInterval:4 target:self selector:@selector(updateBusLocation) userInfo:nil repeats:YES];
et je veux être en mesure de passer d'une chaîne à la méthode updateBusLocation. Aussi, où suis censé définir la méthode updateBusLocation? Dans le même .m fichier que j'ai créer le minuteur?
EDIT:
En fait, je suis toujours avoir des problèmes. Je reçois le message d'erreur:
Résiliation d'application en raison de uncaught exception 'NSInvalidArgumentException', la raison: '* -[MapKitDisplayViewController updateBusLocation]: unrecognized sélecteur envoyé à l'instance 0x4623600'
Voici mon code:
- (IBAction) showBus {
//do something
[NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(updateBusLocation) userInfo:txtFieldData repeats:YES];
[txtFieldData release];
}
- (void) updateBusLocation:(NSTimer*)theTimer
{
NSLog(@"timer method was called");
NSString *txtFieldData = [[NSString alloc] initWithString:(NSString*)[theTimer userInfo]];
if(txtFieldData == busNum.text) {
//do something else
}
}
EDIT #2: Jamais l'esprit de votre exemple de code fonctionne très bien merci pour l'aide.