Warum setzt der Startknopf meiner Stoppuhr den Timer zurück, nachdem Stop gedrückt wurde? Alles funktioniert gut, bis ich den Timer stoppe und dann neu starte. Es sollte an der Stelle fortgesetzt, wo sie gestoppt wurde, sondern setzt sie den Timer auf 0 Hier ist mein Code:der Startknopf meiner Stoppuhr setzt den Timer zurück, nachdem der Stopp aktiviert wurde swift
Klasse Viewcontroller: UIViewController {
var timer = NSTimer()
var startTime = NSTimeInterval()
@IBOutlet var displayTimeLabel: UILabel!
@IBAction func start(sender: AnyObject) {
if !timer.valid {
timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: #selector(ViewController.updateTime), userInfo: nil, repeats: true)
}
startTime = NSDate.timeIntervalSinceReferenceDate()
}
@IBAction func stop(sender: AnyObject) {
timer.invalidate()
}
func updateTime() {
let currentTime = NSDate.timeIntervalSinceReferenceDate()
var elapsedTime: NSTimeInterval = currentTime - startTime
let hours = UInt8(elapsedTime/3600)
elapsedTime -= (NSTimeInterval(hours) * 3600)
let minutes = UInt8(elapsedTime/60)
elapsedTime -= (NSTimeInterval(minutes) * 60)
let seconds = UInt8(elapsedTime)
elapsedTime -= NSTimeInterval(seconds)
let fraction = UInt8(elapsedTime * 100)
let strHours = String(format: "%02d", hours)
let strMinutes = String(format: "%02d", minutes)
let strSeconds = String(format: "%02d", seconds)
let strFraction = String(format: "%02d", fraction)
displayTimeLabel.text = "\(strHours):\(strMinutes):\(strSeconds):\(strFraction)"
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Sie setzen 'startTime' in Ihrer' Starten' Methode. Wenn Sie in der Lage sein möchten, weiter zu machen, tun Sie dies nicht – Paulw11
Wenn ich diese Codezeile aus, dann bekomme ich dieses Problem: fataler Fehler: Fließkommawert kann nicht in UInt8 konvertiert werden, weil es größer als UInt8.max ist @ Paulw11 – nodyor90z