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