可能性のある複製:
NSTimerは停止しません
私のアプリケーションでは、NStimerを使用して3秒ごとにアニメーション関数を呼び出しています。このタイマーを停止し、タイマーの実行中に別のイベントを呼び出したい。これは可能ですか?
@interface
NSTimer *autoTimer;
@implementation
// Start timer
autoTimer = [NSTimer scheduledTimerWithTimeInterval:(3.0)
target:self
selector:@selector(autoTimerFired:)
userInfo:nil
repeats:YES];
// Stop timer:
[autoTimer invalidate];
autoTimer = nil;
まず、タイマーへのポインターを保持したい
self.packetTimer = [NSTimer timerWithTimeInterval:CONNECTION_TIMEOUT target:self selector:@selector(connectionTimeout:) userInfo:nil repeats:NO];
[[NSRunLoop currentRunLoop] addTimer:packetTimer forMode:NSDefaultRunLoopMode];
コード内のどこかでキャンセルしたい場合は、以下を呼び出してください:
[self.packetTimer invalidate];
self.packetTimer = nil;