我创建了一个小部件,我想每三秒更新一次。
我有以下代码:
struct WidgetModel : TimelineEntry
{
var date: Date
var data: [Data]
}
func getTimeline(in context: Context, completion: @escaping (Timeline<WidgetModel>) -> Void)
{
let controller = DataController()
controller.refresh()
let nextRefresh = Calendar.current.date(byAdding: .second, value: 3, to: Date())!
let model = WidgetModel(date: nextRefresh, data: controller.data)
let timeline = Timeline(entries: [model], policy: .atEnd)
completion(timeline)
}
但是,这三秒将被忽略。模拟器总是显示下一次刷新将在五分钟后。我也尝试使用 .after 而不是 .atEnd,但这没有任何效果。五分钟是最小值还是与模拟器有关?