Я разрабатываю таймер обратного отсчета в своем приложении, но я не знаю, почему он не работает.Таймер обратного отсчета 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()
Если я уеду:
let startTime = NSDate()
и комментарии
let startTime = formatter.dateFromString("05/12/16 0:00:00 a")
это работает прекрасно, но это начинается с текущего времени и даты на данный момент. Мне нужна конкретная дата и время, в моем случае это «05/12/16 0:00:00 a», и время должно начинать отсчет с этой даты и часа, а не с этого момента.
Не используйте 'dateFromString' для формирования даты. Используйте компоненты даты. – matt