Quello che faccio (in entrambe le lingue) è di rendere il mio timer debole. In rapido sarebbe un optional debole.
weak var myTimer: NSTimer?
Poi creare un timer con
myTimer = NSTimer.scheduledTimerWithTimeInterval(1,
target: self,
selector: "timerFired:",
userInfo: nil,
repeats: false)
e poi si può usare
if timer == nil
per dire se è in esecuzione.
Per fermare il timer basta chiamare
myTimer?.invalidate()
In Objective-C sarebbe
[myTimer invalidate];
che opera in Objective-C, perché l'invio di messaggi ai puntatori a zero, è valida, e fa proprio Niente.
Se non si desidera utilizzare un opzionale debole, è possibile interrogare un timer per vedere se è in esecuzione osservando la sua proprietà valid
.
fonte
2015-07-02 19:04:00
Fornire tutte le informazioni pertinenti, che includano il messaggio di errore completo effettivo. – zaph
@amro shahbari swift 3.1 non funziona –