it-swarm-pt.tech

IOS: pare um NSTimer

Possível duplicado:
NSTimer não para

Eu tenho este código:

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

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

no targetMethod, posso parar o timer com [timer invalidate], mas, fora deste método, como posso parar o targetMethod?

29
CrazyDev

Você pode manter seu NSTimer em uma variável e parar o cronômetro usando o método invalidate. Como o seguinte:

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

[myTimer invalidate];
72
Raphael Petegrosso

Uma maneira de fazer isso é criar o NSTimer * timer; como uma variável global para que você possa controlar o cronômetro. Alguma coisa gosta disso:

NSTimer *timer;  //global var

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

Para parar o cronômetro em algum lugar da mesma classe:

[timer invalidate];
16
user523234