iPhone - NSTimer und Aufruf einer Funktion mindestens n Sekunden nach dem letzten Ausführen der Funktion

StackOverflow https://stackoverflow.com/questions/6380453

Frage

nur eine kurze Frage. Ich habe eine Funktion, die mehrmals mit einer Periode von 5 Sekunden aufgerufen wurde.Gibt es eine Möglichkeit, einen NSTimer so einzubauen, dass zwischen den Funktionsaufrufen eine Pause liegt (dh die Funktion kann nicht aufgerufen werden, bevor der Timer ein bestimmtes Limit erreicht hat)? Alle Vorschläge sind willkommen!

Alex

War es hilfreich?

Lösung

Wenn Sie nicht möchten, dass eine bestimmte Methode für einen bestimmten Zeitraum nach dem Aufrufen aufgerufen wird, können Sie dies tun.

- (void)methodThatDoesStuff {
    static NSDate * lastCalled = nil;
    if ( [[NSDate date] timeIntervalSinceDate:lastCalled] < 5 ) {
        NSLog(@"Call Blocked");
        return;
    }

    NSLog(@"Called");

    [lastCalled release];
    lastCalled = [[NSDate date] retain];
}

Dies blockiert alle Methodenaufrufe für 5 Sekunden, nachdem die Methode erfolgreich ausgeführt wurde.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top