IOS:停止NSTimer

时间:2011-12-15 17:38:04

标签: ios xcode nstimer

  

可能重复:
  NSTimer doesn't stop

我有这段代码:

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

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

在targetMethod我可以使用[timer invalidate]停止计时器,但是在这种方法之外,我该如何停止targetMethod?

2 个答案:

答案 0 :(得分:71)

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

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

[myTimer invalidate];

答案 1 :(得分:16)

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

NSTimer *timer;  //global var

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

要在同一个班级的某处停止计时器:

[timer invalidate];