我试图从 Http Api 获取一些数据并使用响应的 JSON 相应地更新我的 SwiftUI 视图中的文本
问题是,我需要每秒两次获取数据,我真的不知道如何相应地刷新我的视图。
这就是我获取数据的方式
var timer = Timer()
func scheduleTimer()
timer = Timer.scheduledTimer(timeInterval: 0.2, target: self, selector: #selector(fetchData), userInfo: nil, repeats: true)
}
@objc func fetchData() {
let url:URL = URL(string: "http://XXX.XXX.XXX.23:8085/telemachus/datalink?altitude=v.altitude&longitude=v.long&latitude=v.lat&name=v.name")!
URLSession.shared.dataTask(with: url) { (data, response, error) in
if let error = error { print(error) }
guard let data = data else {return}
do {
let jsonData = try JSONDecoder().decode(JsonData.self, from: data)
let altitude = jsonData.altitude
print(altitude)
} catch let error {
print(error)
}
}.resume()
}
我用一个计时器来重复这个动作。我还有一个 JsonData 模型。@EnvironmentObject 在这种情况下不可用,因为该函数不在视图内。