我想在屏幕上显示当前时间。
我有一段代码来显示时间(一次) 我有代码要刷新(定时器
我无法让两者一起工作以保持屏幕上的时间更新。
PS:我知道 print("FIRE") 不会显示时间,但我尝试的两种组合都会导致错误。
func getCurrentDateTime() {
let formatter = DateFormatter()
formatter.dateStyle = .none
formatter.timeStyle = .long
let str = formatter.string (from: Date ())
TimeNow.text = str
}
let timer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(fire), userInfo: nil, repeats: true)
@objc func fire()
{
print("FIRE")
}
我的目标是在屏幕上显示一个大时钟。
最佳答案
我的建议是 Timer
的基于 block 的 API——这避免了 @objc
属性——并且只创建一次 DateFormatter
。
并且请遵守变量名以小写字母开头的命名约定。
var timer : Timer!
...
let dateFormatter : DateFormatter = {
let formatter = DateFormatter()
formatter.dateStyle = .none
formatter.timeStyle = .long
return formatter
}()
timer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: true) { _ in
DispatchQueue.main.async {
self.timeNow.text = formatter.string(from: Date())
}
}
关于ios - 显示当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55525519/