swift - WidgetKit 未更新
问题描述
例如,我希望我的小部件每 5 秒更新一次。我不知道为什么它不起作用。代码应该是正确的。
更新代码:
func getTimeline(for configuration: ConfigurationIntent, in context: Context, completion: @escaping (Timeline<Entry>) -> ()) {
var entries: [SimpleEntry] = []
let currentDate = Date()
for _ in 0 ..< 5 {
let entryDate = Calendar.current.date(byAdding: .minute, value: 60, to: currentDate)!
let entry = SimpleEntry(date: entryDate, configuration: configuration, clubname: networkManager.clubName)
entries.append(entry)
}
let timeline = Timeline(entries: entries, policy: .atEnd)
completion(timeline)
}
解决方案
因为您添加了相同的条目。如果您像下面的示例更改值,它将被刷新。
func getTimeline(in context: Context, completion: @escaping (Timeline<Entry>) -> ()) {
var entries: [SimpleEntry] = []
// Generate a timeline consisting of five entries an hour apart, starting from the current date.
let currentDate = Date()
let chapter = getChapterWith(level: "1") // it is returned a array.
for index in 0 ..< chapter.count {
let entryDate = Calendar.current.date(byAdding: .second, value: index, to: currentDate)!
let entry = SimpleEntry(date: entryDate, chapter: chapter[index])
entries.append(entry)
}
let timelineDate = Calendar.current.date(byAdding: .second, value: 1, to: Date())!
let timeline = Timeline<SimpleEntry>(entries: entries, policy: .after(timelineDate))
completion(timeline)
}
func getChapterWith(level: String) -> [Chapter] {
return []
}
//Chapter是一个struct,它是SimpleEntry中的一个变量。
struct SimpleEntry: TimelineEntry {
let date: Date
let chapter: Chapter
}
推荐阅读
- python-3.x - 无法从 OpenGL_accelerate 加载 numpy_formathandler 加速器
- spring - 值对象为 @AggregateIdentifier 和 @TargetAggregateIdentifier
- spring - Spring Cloud Contract - 字符串数组作为查询参数
- xamarin.forms - 从视图模型到另一个视图的方向
- laravel - Laravel/php 应用程序不执行更改
- angular - 如何提供资产文件夹之外的图像?
- android - BottomSheetFragment 是否需要 ViewModel?
- github - 来自分叉的拉取请求不会触发 travis ci
- c# - 计算有多少用户添加到数据库
- java - 使用 api 提供的签名哈希对 PDF 进行签名