UNCalendarNotificationTrigger не будет работать с полными компонентами даты - PullRequest
0 голосов
/ 09 января 2019

В более ранний вопрос Я упомянул проблему планирования локальных уведомлений. Настоящей причиной проблемы было то, что я использовал следующий код для создания триггера, который не работает:

let calendar = ...
let notificationDate = ...

let dateComponents = calendar.dateComponents(in: calendar.timeZone, from: notificationDate)
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)

Однако следующий код работает:

let calendar = ...
let notificationDate = ...

let dateComponents = calendar.dateComponents([.day, .month, .year, .hour, .minute], from: notificationDate)
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false)

Итак, вопрос: что здесь происходит? Почему последний работает, а первый нет?

1 Ответ

0 голосов
/ 12 июля 2019

Похоже, что если вы предоставите компоненты даты, которые слишком специфичны, он не будет совпадать с триггером. В документации говорится: «Предоставляйте только те компоненты даты, которые важны для вашего триггера».

Я тоже столкнулся с этой проблемой и обнаружил, что [.day, .month, .year, .hour, .minute, .second] обычно безопасен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...