Как передать параметр методу, вызываемому 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:
Не берите в голову, ваш пример кода работает хорошо, спасибо за помощь.