IOS: остановить NSTimer

Возможный дубликат:
NSTimer не останавливается

У меня есть этот код:

[NSTimer scheduledTimerWithTimeInterval:110.0
                                 target:self
                               selector:@selector(targetMethod:)
                               userInfo:nil
                                repeats:YES];

- (void) targetMethod:(NSTimer) timer{
NSLog(@"Hello World");}

в targetMethod Я могу остановить таймер с [timer invalidate], но из этого метода, как я могу остановить targetMethod?

Ответ 1

Вы можете сохранить NSTimer в переменной и остановить таймер с помощью метода invalidate. Как показано ниже:

NSTimer * myTimer = [NSTimer scheduledTimerWithTimeInterval:110.0
                                 target:self
                               selector:@selector(targetMethod:)
                               userInfo:nil
                                repeats:YES];

[myTimer invalidate];

Ответ 2

Один из способов сделать это - создать таймер NSTimer *; как глобальную переменную, чтобы вы могли иметь дескриптор таймера. Некоторая вещь нравится это:

NSTimer *timer;  //global var

timer = [NSTimer scheduledTimerWithTimeInterval:110.0
                                 target:self
                               selector:@selector(targetMethod:)
                               userInfo:nil
                                repeats:YES];

Чтобы остановить таймер где-то в том же классе:

[timer invalidate];