我在UILabel
上显示直播时间时遇到问题。
如果我使用Date()
,就可以正常工作:
var timer = Timer()
// I use this in viewDidLoad:
timer = Timer.scheduledTimer(timeInterval: 1.0,
target: self,
selector: #selector(tick),
userInfo: nil,
repeats: true)
// and tick func is:
@objc func tick() {
print("tick")
let time1 = DateFormatter.localizedString(from: Date(),
dateStyle: .none,
timeStyle: .medium)
serverTime.text = time1
}
它可以每次更新我的标签。
但是我不想使用Date()
。我想从我的API使用类似“ 2018-12-10 17:29:50”的内容。
但是当我使用它时,标签不会每次都更新。那我应该用什么呢? Date()或calender.current吗? 。请给我一个例子:)
var timestamp = 0
{
YourAPI.request() {
let dateString = aDateFromYourServer
let date = formatter.date(from: dateString)
timestamp = date.timeIntervalSince1970
createTimer()
}
}
@objc func timerSelector() {
timestamp = timestamp + 1
let newDate = Date(timeIntervalSince1970: timestamp)
label.text = ...
}