我不能在跨时区适当地有10个本地通知(未通知(。
在时区 10小时,我希望它在17:00:00开火,然后安排它。
稍后,当我查看安排什么通知时,我将获得下一个开火日期,仍在时区 10小时,它将说17:00:00。
但是,当我将时区更改为设备上的 8小时,然后查看计划的通知时,我将获得下一个触发日期,然后它 still 说17:00:00。我本来希望它在两个小时前在15:00:00发射。
我该如何使其像这样工作?我已经尝试更改用于创建馈送给uncalendarnotificationtrigger的日期组件的日历的时区(尝试的事物是:TimeZone.init(identifier: "Somewhere")
,TimeZone.autoupdatingCurrent
,可能是其他的(。但这只是不会改变,afaik i 始终即使我更改了时区,也要获得完全相同的火灾日期。
UNTimeIntervalNotificationTrigger
可以解决此问题。
您可以计算您设置的日期和当前日期之间的差异,然后安排时间间隔触发器。
func timeIntervalTrigger(from date: Date, repeats: Bool) -> UNTimeIntervalNotificationTrigger {
let timeInterval = date.timeIntervalSinceNow
let trigger = UNTimeIntervalNotificationTrigger(timeInterval: timeInterval, repeats: repeats)
return trigger
}