9

使ってます

 [NSTimer scheduledTimerWithTimeInterval:0.1f
                                  target:self
                                selector:@selector(update)
                                userInfo:nil
                                 repeats:YES];

このタイマーの呼び出しを停止したい。

viewDidDisappear

どうやってやるの?無効にしますか?

4

5 に答える 5

27

NSTimer *myTimer.h ファイルで宣言 します。

トムがこのように言ったようにインスタンスを割り当てます

myTimer = [NSTimer scheduledTimerWithTimeInterval:0.1f
                                     target:self
                                   selector:@selector(update)
                                   userInfo:nil
                                    repeats:YES];

これを使用して停止および無効化する

- (void) viewDidDisappear:(BOOL)animated
{
    [myTimer invalidate];
    myTimer = nil;
}
于 2013-03-02T04:01:33.677 に答える
4

これを試して

ビューコントローラ .h

 NSTimer *timer;

viewcontroller.m

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


  - (void) viewDidDisappear:(BOOL)animated 
    {
      [super viewDidDisappear:animated];
      [timer invalidate];
    }
于 2013-03-02T04:04:07.107 に答える
1

はい、の- (void)invalidateインスタンスメソッドを使用しますNSTimer

もちろん、これを行うには、NSTimerから返されたインスタンス[NSTimer scheduledTimerWithTimeInterval:target:selector:userInfo:repeats:]をビューコントローラのivarまたはプロパティに保存して、でアクセスできるようにする必要がありますviewDidDisappear

于 2013-03-02T03:56:43.177 に答える
1

invalidateNSTimerストップタイマーの使い方

- (void) viewDidDisappear:(BOOL)animated 
{
        [super viewDidDisappear:animated];
        [self.timer invalidate];
        self.timer = nil;
}

あなたがARCでない場合は、忘れないでください[self.timer release];

于 2013-03-02T04:01:16.250 に答える
1

NSTimer を停止または無効化するには、最初にグローバルに NSTimer のインスタンスを作成する必要があります。

 Timer=[NSTimer scheduledTimerWithTimeInterval:0.1f
                                  target:self
                                selector:@selector(update)
                                userInfo:nil
                                 repeats:YES];

その後、このようにしてみてください、

if (Timer != nil) {

            [Timer invalidate];
            Timer = nil;

        }
于 2013-03-02T04:02:55.923 に答える