web-dev-qa-db-ja.com

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を停止するにはどうすればよいですか?

29
CrazyDev

NSTimerを変数に保持し、invalidateメソッドを使用してタイマーを停止できます。次のように:

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

[myTimer invalidate];
72

NSTimer * timerを作成する方法があります。グローバル変数として、タイマーへのハンドルを持つことができます。これが好きなもの:

NSTimer *timer;  //global var

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

同じクラスのどこかでタイマーを停止するには:

[timer invalidate];
16
user523234