我正在尝试每天在同一时间和分钟安排iOS通知 .

首先我定义一个 DateComponents

var components = DateComponents()
components.hour = 1
components.minute = 10
components.second = 0

然后使用它来制作触发器:

let trigger = UNCalendarNotificationTrigger(dateMatching: components, repeats: true)

打印组件会产生预期结果:

hour: 1 minute: 10 second: 0 isLeapMonth: false

但是打印触发器的下一个触发日期总是显示比它应该晚5个小时的时间:

Optional(2017-07-18 06:10:00 +0000)

知道这里发生了什么吗?我已经尝试在组件上设置时区,但没有任何效果 .

编辑:看起来通知实际上是在正确的时间触发(我有一个不同的问题,打破了他们) . 我仍然无法解释nextFireDate的行为 .