0

我有一个计时器,每 10 秒调用一次函数:

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

它调用函数:

- (void)checkForMessages
{

    //do something here

}

两个问题:

  1. 如果需要,如何停止计时器?
  2. 我可以把这个计时器和函数放在某个地方,以便我可以从不同的视图控制器调用它吗?
4

1 回答 1

1

" scheduledTimerWithTimeInterval" 返回一个 " NSTimer" 对象。

如果您持有该对象(例如,通过“”设置和获取它),您可以通过NSTimer方法property停止它。invalidate

由于您要求提供代码,请将其添加到您的视图控制器的 .h @interface:

@property (strong) NSTimer * messageTimer;

然后,在您的视图控制器的 .m 文件中:

self.messageTimer = [NSTimer scheduledTimerWithTimeInterval:10.0
                                     target:self
                                   selector:@selector(checkForMessages)
                                   userInfo:nil
                                    repeats:YES];

说得通?

于 2013-05-09T23:10:17.537 回答