IOS:停止NSTimer

Cra*_*Dev 29 xcode nstimer ios

可能重复:
NSTimer不会停止

我有这个代码:

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

- (void) targetMethod:(NSTimer) timer{
NSLog(@"Hello World");}
Run Code Online (Sandbox Code Playgroud)

在targetMethod我可以用[timer invalidate]停止计时器,但是在这个方法之外,我怎么能停止targetMethod?

Rap*_*sso 72

您可以将NSTimer变量保留在变量中并使用该invalidate方法停止计时器.如下:

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

[myTimer invalidate];
Run Code Online (Sandbox Code Playgroud)


use*_*234 16

一种方法是创建NSTimer*计时器; 作为全局变量,您可以拥有计时器的句柄.有些事情喜欢这个:

NSTimer *timer;  //global var

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

要在同一个类的某个地方停止计时器:

[timer invalidate];
Run Code Online (Sandbox Code Playgroud)