Ich entwickle einen Countdown-Timer in meiner Anwendung, aber ich weiß nicht, warum es nicht funktioniert.Countdown-Timer swift
let formatter = NSDateFormatter()
let userCalendar = NSCalendar.currentCalendar()
let requestedComponent: NSCalendarUnit = [
//NSCalendarUnit.Month,
//NSCalendarUnit.Day,
NSCalendarUnit.Hour,
NSCalendarUnit.Minute,
NSCalendarUnit.Second
]
func printTime()
{
formatter.dateFormat = "MM/dd/yy hh:mm:ss a"
//let startTime = NSDate()
let startTime = formatter.dateFromString("05/12/16 0:00:00 a")
let endTime = formatter.dateFromString("12/25/16 8:00:00 a")
let timeDifference = userCalendar.components(requestedComponent, fromDate: startTime!, toDate: endTime!, options: [])
TimeLabel.text = " \(timeDifference.hour)Hours \(timeDifference.minute)Minutes \(timeDifference.second) Seconds"
}
let timer = NSTimer.scheduledTimerWithTimeInterval(1.0, target: self, selector: #selector(printTime), userInfo: nil, repeats: true)
timer.fire()
Wenn ich verlassen:
let startTime = NSDate()
und kommentieren
let startTime = formatter.dateFromString("05/12/16 0:00:00 a")
es perfekt funktioniert, aber es geht von der aktuellen Uhrzeit und das Datum im Moment. Ich brauche ein bestimmtes Datum und Uhrzeit, in meinem Fall ist "05/12/16 0:00:00 a" und die Zeit sollte ab diesem Datum und dieser Stunde beginnen, nicht ab jetzt.
Verwenden Sie nicht "dateFromString", um ein Datum zu bilden. Verwenden Sie Datumskomponenten. – matt