如何使用 API 中的自定义时间而不是 Swift 中的 Date() 来更新实时时间?
How do I update live time using custom time from API rather than Date() in Swift?
我在 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”之类的东西
但是当我使用它时,标签不会每次都更新。
我应该用什么?日期() 或 calender.current ? .请给我一个例子:)
- 请求您的api获取时间
- 通过 DateFormatter 将其转换为日期
- 将日期转换为时间戳
- 创建一个计时器。按时间戳更新标签++
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 = ...
}
我在 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.
但是当我使用它时,标签不会每次都更新。 我应该用什么?日期() 或 calender.current ? .请给我一个例子:)
- 请求您的api获取时间
- 通过 DateFormatter 将其转换为日期
- 将日期转换为时间戳
- 创建一个计时器。按时间戳更新标签++
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 = ...
}