Avatar ·

Comment utiliser Timer (NSTimer) en Swift : création, arrêt et répétition du timer

Bonjour ! Je viens de commencer à apprendre Swift et j'essaie d'implémenter un simple timer de compte à rebours dans mon application. J'ai besoin que la valeur à l'écran soit mise à jour chaque seconde, et que le timer s'arrête après 10 secondes. J'ai trouvé la classe Timer dans la documentation, mais j'ai rencontré des problèmes. Voici ce que j'essaie de faire : ```swift var seconds = 10 func startTimer() { Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(updateTimer), userInfo: nil, repeats: true) } @objc func updateTimer() { seconds -= 1 print(seconds) if seconds == 0 { // Comment arrêter le timer ? } } ``` Le timer démarre et compte les secondes, mais je ne comprends pas : 1. Comment arrêter correctement le timer quand `seconds` devient 0 ? 2. Pourquoi Xcode donne-t-il parfois un avertissement concernant un cycle de référence fort (strong reference cycle) ? 3. Comment créer un timer qui se déclenche une seule fois (sans répétition) ? 4. Existe-t-il un moyen d'utiliser un timer sans sélecteur, par exemple avec un