iPhone Programmierung und NSTimer

iPhone Programmierung und NSTimer

Von am 29.09.2011

NSTimer ist eine einfache Methode um zeitabhängige Methodenaufrufe zu machen. Entweder einmal nach einer vorgegeben Zeitspanne in Sekunden, oder immer wieder nach den angegebenen Sekunden.

Codebeispiel:

- (void) handleTimer: (NSTimer *) timer
{
    do some work here...
} // handleTimer

NSTimer *timer;

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

Hierbei ist 0.5 die Zeit in Sekunden nachdem die Funktion “handleTimer” aufgerufen wird. Wenn die Funktion im Intervall von 0.5 Sekunden immer wiederaufgerufen werden soll muss “repeats: YES” gesetzt sein. Durch “repeats: NO” wird die Funktion nur einmal nach der angegeben Dauer aufgerufen, fungiert also als delay oder Pause.

Durch das Aufrufen einer Funktion im Intervall kann man biespielsweise Ausgaben am Display steuern, ohne dass ein Benutzer dazu einen Button klicken muss. Wie in dem Beispiel, das unten zum Downloaden bereit steht, kann man dadurch eine Stoppuhr realisieren. Durch NSTimer wird die Ausgabe der aktuell vergangenen Zeit alle 0,01 Sekunden upgedatet, ohne dass der User etwas dazu tun müsste (außer den Timer zu starten klarerweise). Zum Zeit nehmen, messen und vergleichen gibt es natürlich auch andere Methoden, aber da der Intervall genau bekannt ist, kann man auch einfach und genau die Zeit nehmen, indem man bei jedem Funktionsaufruf einen Zähler erhöht.

Und hier jetzt das XCode-Beispiel dazu zum Downloaden: RundenStoppuhr

The comments are closed.