我如何使用API 中的自定义时间而不是Swift中的Date()更新实时时间? [关闭]

问题描述 投票:-3回答:1

我在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吗? 。请给我一个例子:)

ios swift date timer nstimer
1个回答
0
投票
  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 = ...
}
© www.soinside.com 2019 - 2024. All rights reserved.