【发布时间】:2016-10-10 05:37:54
【问题描述】:
今天我切换到 Swift 3 语言。我正在制作一个应用程序,它会在事件发生前对天数小时分钟和秒进行倒计时。以下代码在我的应用中显示以下内容:
可选(6) 天可选(59) 分钟可选(35) 秒。
我在 Swift 2 中的倒计时工作正常,但是一旦我将其转换为 Swift 3,可选的就会出现在数字前面。有 Swift 3 经验的人知道这个问题的解决方案吗?
@IBAction func NextWeeklyButtonPressed(_ sender: AnyObject) {
let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(printTimeWeeks), userInfo: nil, repeats: true)
timer.fire()
}
func printTimeWeeks() {
formatter.dateFormat = "MM/dd/yy hh:mm:ss a"
let startTime = Date()
let endTime = formatter.date(from: WeeklyDate.text!+" 12:00:00 a")
// WeeklyDate.text is a date in short style
let timeDifference = (userCalendar as NSCalendar).components(requestedComponent, from: startTime, to: endTime!, options: [])
WeeklyDateLabel.text = "\(timeDifference.day) Days \(timeDifference.minute) Minutes \(timeDifference.second) Seconds"
}
【问题讨论】:
-
这意味着
timeDifference.day是可选的。您是否查找过 Swift 3 的 DateComponents 参考资料?