如何使用 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 ? .请给我一个例子:)

  1. 请求您的api获取时间
  2. 通过 DateFormatter 将其转换为日期
  3. 将日期转换为时间戳
  4. 创建一个计时器。按时间戳更新标签++
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 = ...
}