In Java können Sie die Ausführung des aktuellen Threads für eine bestimmte Zeit mit anhalten Thread.sleep()
. Gibt es so etwas in Objective-C?
ios
objective-c
cocoa-touch
sleep
levi
quelle
quelle
Eine Sekunde in Java schlafen :
Eine Sekunde schlafen in Ziel C:
quelle
Warum schläfst du? Wenn Sie in den Ruhezustand wechseln, blockieren Sie die Benutzeroberfläche und alle Hintergrund-URLs, die nicht in anderen Threads geladen werden (die Verwendung der asynchronen NSURL-Methoden funktioniert weiterhin für den aktuellen Thread).
Wahrscheinlich möchten Sie performSelector: withObject: AfterDelay. Dies ist eine Methode in NSObject, mit der Sie eine Methode in einem festgelegten Intervall später aufrufen können. Sie plant einen Aufruf, der zu einem späteren Zeitpunkt ausgeführt wird, aber alle anderen Dinge, die der Thread behandelt (wie Benutzeroberfläche und Datenladen) immer noch weitermachen.
quelle
Natürlich können Sie auch die Standardaufrufe für Unix sleep () und usleep () verwenden. (Wenn ich Cocoa schreibe, bleibe ich jedoch beim [NSThread sleepForTimeInterval:].)
quelle
Wenn Sie NSThread sleepForTimeInterval (kommentierter Code) zum Ruhezustand verwenden, wird das Abrufen von Daten blockiert, aber + [NSThread sleepForTimeInterval:] (checkLoad-Methode) blockiert das Abrufen von Daten nicht.
Mein Beispielcode wie folgt:
quelle
usleep () kann auch verwendet werden, um den aktuellen Thread zeitweise anzuhalten
quelle