【发布时间】:2021-11-18 20:15:02
【问题描述】:
我正在尝试在 SwiftUI 上创建一个小部件。该小部件应该每小时刷新一次。但是,小部件无法重新加载。
虽然故障排除注意到,当我从设置中手动更改时间时,小部件确实会更新。
func getTimeline(for configuration: MyWidgetSelectionIntent, in context: Context, completion: @escaping (Timeline<Entry>) -> ()) {
var entries: [SimpleEntry] = []
let currentDate = Date()
let midnight = Calendar.current.startOfDay(for: currentDate)
for offset in 0 ..< 24{
let entryDate = Calendar.current.date(byAdding: .hour, value: offset, to: midnight)!
entries.append(SimpleEntry(date: entryDate, configuration: configuration))
}
let timeline = Timeline(entries: entries, policy: .atEnd)
completion(timeline)
}
【问题讨论】:
-
如何知道是否重新加载失败?您是否在小部件中呈现刷新日期并等待 1 小时?
-
我正在小部件上显示当前设备时间,并手动将设备时间设置为提前 59 分钟进行测试。
-
为什么不直接从当前日期开始设置?不是一天的开始?