Nie mogę uruchomić mojego licznika? Nie jak przerwa, ale przystanek.Jak zatrzymać NSTimer.scheduledTimerWithTimeInterval
import UIKit
class LastManStandingViewController: UIViewController {
@IBOutlet weak var timeLabel: UILabel!
@IBOutlet weak var timeTextbox: UITextField!
@IBOutlet weak var startButton: UIButton!
@IBOutlet weak var stopButton: UIButton!
var myCounter = 0
var myTimer : NSTimer = NSTimer()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
timeLabel.text = String(myCounter)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func startTimer(){
myTimer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector("updateTimer"), userInfo: nil, repeats: true)
println("func startTimer")
}
func stopTimer(){
myTimer.invalidate()
myCounter = 0
timeLabel.text = String(myCounter)
println("func stopTimer")
}
func updateTimer(){
timeLabel.text = String(myCounter++)
println("func updateTimer")
}
@IBAction func startButton(sender: AnyObject) {
startTimer()
}
@IBAction func stopButton(sender: AnyObject) {
stopTimer()
}
}
mogę uruchomić stoper, ale kiedy nacisnąć przycisk Stop, to zresetować się i zaczyna ponownie liczenie. To się nie kończy.
Sprawdziło się. Coś było nie w porządku z moim projektem! Naprawiono go, usuwając przycisk i dodając je ponownie. Wygląda na to, że miałem duplikat lub coś takiego.
proszę pisać kod (nie możemy przetestować go, jeśli to tylko zrzut ekranu). – Moritz
@ericd Dodano pełny kod teraz. –
Kopiuję-wklejałem ważne bity twojego kodu w przykładowej aplikacji i nie widzę problemów, timer uruchamia się i zatrzymuje poprawnie. Czy na pewno nie robisz nic więcej? [zrzut ekranu z mojego testu] (https://www.evernote.com/shard/s89/sh/ca19d729-0a27-421f-bd79-19cfa7c503c8/25d3926720f64e01c47ae0eaaaa7f3ee/deep/0/AppDelegate.swift.png) – Moritz