0

viewDidDisappear で NSTimer を無効にしないように、コントローラーを終了するときに NSTimer で何かをしたい

    self.timer = [NSTimer scheduledTimerWithTimeInterval:1
                                                  target:self
                                                selector:@selector(stopWatch)
                                                userInfo:nil
                                                 repeats:YES];

- (void)stopWatch
{
// Do something
NSLog(@"stopWatch");
}

-(void)viewDidDisappear:(BOOL)animated {
// Do not invalidate NSTimer here;
}

このコントローラーを終了した後、このコントローラーに戻り、

- (void)viewDidLoad
{
[self.timer invalidate];
    self.timer = nil;
    self.timer = [NSTimer scheduledTimerWithTimeInterval:1
                                                  target:self
                                                selector:@selector(stopWatch)
                                                userInfo:nil
                                                 repeats:YES] ;
}

だから私は同時に2つのNSTimerを実行しています

新しいものを作成するときに以前の NSTimer を無効にするにはどうすればよいですか?

よろしくお願いします

4

2 に答える 2

1

それへの参照を保存して使用します:

if([timer isValid]){
    [timer invalidate];
}

またはあなたの目的のために:

if(![timer isValid]){
    //create timer
}
于 2013-07-17T10:28:59.373 に答える