Avatar ·

Comment créer un délai (delay) en Swift : guide complet

Bonjour à tous ! Je suis débutant en Swift et en développement iOS. J'écris une application simple pour m'entraîner — un minuteur de compte à rebours. J'ai besoin qu'après avoir appuyé sur le bouton "Démarrer", le programme attende 3 secondes, puis exécute une action (par exemple, afficher un message ou lancer une animation). J'ai essayé d'utiliser `sleep(3)`, mais cela semble bloquer toute l'interface — l'application se fige pendant 3 secondes et les boutons ne répondent plus. Ce n'est pas ce qu'il faut. Pouvez-vous me dire comment faire correctement un délai en Swift pour que l'interface reste réactive ? De préférence avec un exemple de code pour iOS (UIKit ou SwiftUI). J'ai entendu parler de `DispatchQueue.main.asyncAfter`, mais je ne comprends pas bien comment cela fonctionne. Voici mon code actuel (incorrect) : ```swift @IBAction func startButtonTapped(_ sender: UIButton) { print("Début du délai...") sleep(3) // Cela bloque l'UI print("3 secondes se sont écoulées") // Ici, mise à jour de l'UI } ``` Merci d'avance pour votre aide ! <<>>

Correct