可能性のある複製:
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を停止するにはどうすればよいですか?
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];