Objective-C在另一种方法中使计时器无效

时间:2011-03-27 19:26:48

标签: objective-c xcode timer nstimer invalidation

我有一个方法,我已经宣布了一个计时器;

- (void)startTimer:(id)sender {
    NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval: 0.8
                                                     target: self
                                                   selector: @selector(toggleButtonImage:)
                                                   userInfo: nil
                                                    repeats: YES];  
}

我想要做的是,在另一种方法中我想让计时器运行时无效,这是我到目前为止所得到的但我得到的错误'计时器未声明'

- (void)stopTimer:(id)sender {
    if ( [timer isValid]) {
      [timer invalidate], timer=nil;
    }
}

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:3)

如果两个方法都在同一个控制器上,那么只需将定时器作为实例变量即可。如果它们不在同一个对象上,您应该重新考虑您的设计,因为两个类正在尝试管理同一个设施。