gpt4 book ai didi

swift - iOS 14 Widget 每天自动刷新

转载 作者:行者123 更新时间:2023-12-03 09:20:25 24 4
gpt4 key购买 nike

我玩过新的 iOS 14 WidgetKit ,除了自动刷新外,似乎工作得几乎很好。我的目标是让我的 WidgetKit 每午夜刷新一次(因此,每天只刷新一次,当然,如果我的应用程序中发生某些事情,则偶尔刷新一次)。在 XCode 中,我将它设置为每分钟刷新一次,并且似乎工作得非常随机 - 所以它可能在我测试的 10 分钟内刷新一次,但我想,没关系,因为我读到刷新是由 iOS 处理的,所以它可能迟早会出现,但终将到来。
现在,我已经发布了我的应用程序的这个版本,今天早上(早上 8 点左右,午夜过后很长时间)我检查了我的 WidgetKit ,但今天没有更新。
我的问题,我做错了什么吗?或者它只是还没有那么稳定?
我的时间线只包含一项 date: now并将刷新策略设置为 .after(nextMidnight) .
我还尝试了刷新策略 .atEnd ,但由于我在时间线中只有一项设置为现在,它不会尝试不断刷新吗?我想,.after是更好的方法。
如果相关,则为 StaticConfiguration而不是 IntentConfiguration (老实说,我仍然需要深入研究这里的区别是什么......)。
代码片段:

    func getTimeline(in context: Context, completion: @escaping (Timeline<Entry>) -> ()) {
let now = Date()
let calendar = Calendar.current
var dateComponents = DateComponents()
dateComponents.year = calendar.component(.year, from: now)
dateComponents.month = calendar.component(.month, from: now)
dateComponents.day = calendar.component(.day, from: now) + 1
dateComponents.hour = 0
dateComponents.minute = 0
dateComponents.second = 0
let nextUpdate = calendar.date(from: dateComponents)

completion(Timeline(entries: [SimpleEntry(date: now)], policy: .after(nextUpdate!)))
}

最佳答案

其实好像是我忽略了,widget居然刷新了,是我自己没刷新数据。 (我使用 UserDefaults 在我的应用程序和 WidgetKit 之间共享数据,即使 WidgetKit 正确刷新,由于 UserDefaults 中的数据没有更新,同样的内容会一遍又一遍地显示。)

关于swift - iOS 14 Widget 每天自动刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64220533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com