iPhone sleep usleep sleepForTimeInterval NSTimer

3 Möglichkeiten eine iPhone Anwendung zu pausieren:

[NSThread sleepForTimeInterval:5];
sleep(5);
usleep(5000000);

Alle 3 Anweisungen bewirken das gleiche Ergebniss, die Anwenudng wird schlafen gelegt. nachteil aller Optionen: die Anwendung wird wirklich unterbrochen, d.h. weitere Schritte sind nicht möglich.

Wenn man die Anweundung nicht komplett pausieren möchte, könnte der NSTimer ein gewünschtes Ergebniss liefern:

- (IBAction)tueEtwas:(id)sender
{
[indicator startAnimation:self];


// tue etwas


[NSTimer scheduledTimerWithTimeInterval:5
target:self
selector:@selector(stopTueEtwas:)
userInfo:nil
repeats:NO];
}


- (void)stopTueEtwas:(id)sender
{
[indicator stopAnimation:self];
[sender invalidate];
}

Das startet einen NSTimer, der nach 5 Sekunden eine Methode aufruft.

sleep();

usleep();