IOS: остановите NSTimer [дубликат]
Возможный дубликат:
NSTimer не останавливается
У меня есть такой код:
[NSTimer scheduledTimerWithTimeInterval:110.0
target:self
selector:@selector(targetMethod:)
userInfo:nil
repeats:YES];
- (void) targetMethod:(NSTimer) timer{
NSLog(@"Hello World");}
В targetMethod я могу остановить таймер с [таймер недействительной], но этот способ, как я могу остановить targetMethod?
2 ответа:
Вы можете сохранить ваш
NSTimer
в переменной и остановить таймер, используя методinvalidate
. Например, следующее:NSTimer * myTimer = [NSTimer scheduledTimerWithTimeInterval:110.0 target:self selector:@selector(targetMethod:) userInfo:nil repeats:YES]; [myTimer invalidate];
Один из способов сделать это-создать NSTimer *timer; в качестве глобальной переменной, чтобы у вас был дескриптор к таймеру. Некоторым вещам это нравится:
NSTimer *timer; //global var timer = [NSTimer scheduledTimerWithTimeInterval:110.0 target:self selector:@selector(targetMethod:) userInfo:nil repeats:YES];
Чтобы остановить таймер где-то в том же классе:
[timer invalidate];