Bearbeiten:
Ich empfehle dringend, mit Swift Concurrency zu beginnen. Mit Swift Concurrency können Sie einfach die aktuelle Aufgabe mit Task.sleep
pausieren.
Mit der Methode .asyncAfter
von DispatchQueue
können Sie Code nach einer bestimmten Zeit ausführen. Zum Beispiel sieht die Ausführung von ...
auf dem Hauptthread nach einer Sekunde wie folgt aus:
DispatchQueue.main.asyncAfter(deadline: .now() + 1) { ... }
Mit meiner praktischen Datentypen-Delay
-Struktur können Sie es auf eine ausgefallenere Weise ausführen:
struct Delay {
@discardableResult
init(_ timeInterval: TimeInterval, queue: DispatchQueue = .main, executingBlock: @escaping () -> Void) {
queue.asyncAfter(deadline: .now() + timeInterval, execute: executingBlock)
}
}
Verwendung:
Delay(0.4) { ... }