Avatar ·

Analog von dispatch_after in Swift: Wie führe ich Code mit Verzögerung über GCD aus?

Hallo zusammen! Ich bin neu in Swift und habe zuvor in Objective-C geschrieben. Dort habe ich dispatch_after verwendet, um Code mit Verzögerung auszuführen, und es war einfach: ```objc dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ NSLog(@"2 Sekunden sind vergangen"); }); ``` Jetzt wechsle ich zu Swift, finde aber kein direktes Äquivalent. Ich habe gegoogelt, dass dispatch_after in Swift nicht mehr existiert und man etwas anderes verwenden muss. Ich habe es so versucht: ```swift DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) { print("2 Sekunden sind vergangen") } ``` Es scheint zu funktionieren, aber ich bin mir nicht sicher, ob es richtig ist. Besonders verwirrt mich die Syntax mit `deadline: .now() + 2.0` – ich verstehe nicht, wie das funktioniert. Zum Beispiel, wenn ich Code nach 0,5 Sekunden ausführen möchte, schreibe ich einfach `.now() + 0.5`? Oder gibt es Fallstricke bei Verzögerungen auf Hintergrund-Threads? Außerdem möchte ich fragen: Wie bricht man eine geplante Aufgabe richtig ab? In Objective-C konnte ich dispatch_block_t speichern und dann...