Como usar Timer (NSTimer) em Swift: criação, parada e repetição do timer
Olá! Comecei a aprender Swift e estou tentando implementar um timer simples de contagem regressiva no meu aplicativo. Preciso que o valor na tela seja atualizado a cada segundo e que o timer pare após 10 segundos.
Encontrei a classe Timer na documentação, mas estou tendo problemas. Aqui está o que estou tentando fazer:
```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 {
// Como parar o timer?
}
}
```
O timer inicia e conta os segundos, mas não entendo:
1. Como parar o timer corretamente quando `seconds` se torna 0?
2. Por que o Xcode às vezes emite um aviso sobre ciclo de referência forte (strong reference cycle)?
3. Como criar um timer que dispara apenas uma vez (sem repetição)?
4. Existe uma maneira de usar o timer sem selector, por exemplo, com closure?