NSTimer Повторите только x раз, затем вызовите селектор, когда он станет недействительным - PullRequest
7 голосов
/ 07 июля 2010

В первую очередь я ищу способ создать nstimer запланированный таймер, который повторяется каждые 3 секунды 10 раз, а затем становится недействительным, как если бы таймер не повторялся. Это возможно? В идеале дополнительный селектор должен срабатывать, если таймер тоже не работает

1 Ответ

9 голосов
/ 07 июля 2010

Просто следите за количеством циклов и сохраняйте ссылку на объект таймера. Тогда просто лишите законной силы, когда вы сделали достаточно.

// ivars
int loopCount;
NSTimer *myTimer;

// Method that calls your timer.
- (void)doStuff {
    loopCount++;
    if (loopCount >= 10) {
        [myTimer invalidate];
        myTimer = nil;
    } else {

        //do my stuff here...

    }
}

// Method that kicks it all off
- (IBAction)startDoingStuff {
    myTimer = [NSTimer scheduledTimerWithTimeInterval:3.0
                                               target:self
                                             selector:@selector(doStuff)
                                             userInfo:nil
                                              repeats:YES];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...