2011-12-15 21 views
26
durdurmak

Olası Çoğalt: Bu kodu vardır
NSTimer doesn't stopIOS: Bir NSTimer

:

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

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

targetMethod I [zamanlayıcı geçersiz] ile sayacı durdurabilirsiniz, Ancak bu yöntemden, targetMethod'u nasıl durdurabilirim?

cevap

69

Sen tutabilir senin bir değişkene NSTimer ve invalidate yöntemi kullanarak zamanlayıcı durdurun. Aşağıdaki gibi:

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

[myTimer invalidate]; 
16

Bunu yapmanın bir yolu, NSTimer * zamanlayıcı oluşturmaktır; global bir değişken olarak, zamanlayıcıya bir tutacağınız olabilir. Bazı şey bunu beğendi:

NSTimer *timer; //global var 

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

aynı sınıfta bir yere sayacını durdurmak için:

[timer invalidate];