Objective c 起动和起动;停止定时器

Objective c 起动和起动;停止定时器,objective-c,nstimer,Objective C,Nstimer,我有一个计时器,每10秒调用一个函数: [NSTimer scheduledTimerWithTimeInterval:10.0 target:self selector:@selector(checkForMessages) userInfo:nil

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

[NSTimer scheduledTimerWithTimeInterval:10.0
                                     target:self
                                   selector:@selector(checkForMessages)
                                   userInfo:nil
                                    repeats:YES];
它调用函数:

- (void)checkForMessages
{

    //do something here

}
两个问题:

  • 如果需要,如何停止计时器
  • 我可以把这个定时器和函数放在某个地方,以便从不同的视图控制器调用它吗
    scheduledTimerWithTimeInterval
    ”返回一个“
    NSTimer
    ”对象

    如果按住该对象(例如,通过“
    属性”
    ”)设置并获取该对象,则可以通过

    由于您需要代码,请将其添加到视图控制器的.h@界面:

    @property (strong) NSTimer * messageTimer;
    
    然后,在视图控制器的.m文件中:

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

    有道理吗?

    是的,有道理。那么要停止计时器你会吗?我猜是这样的?[messageTimer invalidate];自己messageTimer=nil;我这样说有点不对劲。它似乎没有停止计时器。知道为什么吗?在invalidate上设置一个断点,并确保“
    NSTimer
    ”对象与您创建的对象相同。它都是相同的messageTimer,我设置了一个断点,但没有看到任何不一致的地方。思想?