iPhone - NSTimer und Aufruf einer Funktion mindestens n Sekunden nach dem letzten Ausführen der Funktion
-
28-10-2019 - |
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
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