¿Cómo puedo pasar un parámetro al método llamado por un NSTimer? Mi cronómetro se ve así:Pasar los parámetros al método llamado por un NSTimer
[NSTimer scheduledTimerWithTimeInterval:4 target:self selector:@selector(updateBusLocation) userInfo:nil repeats:YES];
y quiero ser capaz de pasar una cadena al método updateBusLocation. Además, ¿dónde se supone que debo definir el método updateBusLocation? ¿En el mismo archivo .m que creo el temporizador?
EDIT:
En realidad sigo teniendo problemas. Estoy recibiendo el mensaje de error:
Terminación de aplicación debido a excepción no detectada 'NSInvalidArgumentException', razón: '* - [MapKitDisplayViewController updateBusLocation]: Selector no reconocido enviado a la instancia 0x4623600'
Aquí está mi código:
- (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: No importa que su código de ejemplo funcione bien gracias por la ayuda.
pregunta sólido que estoy seguro que un montón de personas se han preguntado en un momento u otro. ¡Gracias! –