Как передать параметр методу, вызванному NSTimer? Мой таймер выглядит так:
[NSTimer scheduledTimerWithTimeInterval:4 target:self selector:@selector(updateBusLocation) userInfo:nil repeats:YES];
и я хочу, чтобы передать строку в метод updateBusLocation. Кроме того, где я должен определить метод updateBusLocation? В том же файле .m, что я создаю таймер?
EDIT:
На самом деле у меня все еще возникают проблемы. Я получаю сообщение об ошибке:
Завершение приложения из-за неперехваченного исключения "NSInvalidArgumentException", причина: "* - [MapKitDisplayViewController updateBusLocation]: непризнанный селектор, отправленный экземпляру 0x4623600 '
Вот мой код:
- (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
}
}
ИЗМЕНИТЬ № 2: Неважно, что ваш примерный код отлично работает благодаря помощи.