Jak przekazać parametr do metody wywoływanej przez NSTimer? Mój timer wygląda następująco:Przekazywanie parametrów do metody wywoływanej przez NSTimer
[NSTimer scheduledTimerWithTimeInterval:4 target:self selector:@selector(updateBusLocation) userInfo:nil repeats:YES];
i chcę mieć możliwość przekazania ciągu znaków do metody updateBusLocation. Ponadto, gdzie mam zdefiniować metodę updateBusLocation? W tym samym pliku .m, który tworzę timer?
EDIT:
Właściwie jestem nadal występują problemy. Otrzymuję komunikat o błędzie:
kończące aplikację spowodowane nieprzechwyconego wyjątku 'NSInvalidArgumentException', powód: '* - [MapKitDisplayViewController updateBusLocation]: selektor nierozpoznany wysyłane do instancji 0x4623600'
Oto mój kod:
- (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
}
}
EDYCJA # 2: Nie bój się przykładowy kod działa dobrze dzięki za pomoc.
stałe wątpliwości, że im na pewno mnóstwo ludzi zastanawiało się w jednym punkcie lub innego. Dzięki! –