在主视图MainView()
中,我通过.task()
异步加载来自WeatherKit
的天气数据,.task()
在用户位置改变时运行:
.task(id: locationManager.currentLocation){
if let location = locationManager.currentLocation{
weather = try await weatherService.weather(for: location)
}
}
然而,用户的位置可能在很长一段时间内不会改变,甚至永远不会改变,我希望天气数据至少每小时更新一次。
我如何每小时更新WeatherKit
数据 * 和 * 每次他们的位置改变时更新。
显然,我不能依赖于'.task(id:)'中的WeatherKit天气对象来更新,因为这是我需要更新的对象。
2条答案
按热度按时间qaxu7uf21#
为了每隔几分钟获取一个位置,我使用的方法是
根据我的需要使用
pcww981p2#
在视图中使用计时器。