Триггерное уведомление еженедельно Swift 3

Я пытаюсь составить расписание, в котором мне нужно запомнить все недели, которые у меня есть, например, понедельник в определенное время. Проблема в том, что если я назначу weekday = 1 (воскресенье), когда я печатаю переменную triggerWeekly, она сообщает мне, что weekday = 2, поэтому, выполняя тесты, я не получаю такое уведомление. Мне нужно знать, почему это происходит

let weekday = 1 //Sunday 19 Mar let calendar = NSCalendar.current var date = DateComponents() date.weekday = weekday date.hour = 1 date.minute = 5 let ultimateDate = calendar.date(from: date) let triggerWeekly = Calendar.current.dateComponents([.weekday, .hour, .minute], from: ultimateDate!) print(triggerWeekly) // hour: 1 minute: 5 second: 0 weekday: 2 isLeapMonth: false let trigger = UNCalendarNotificationTrigger(dateMatching: triggerWeekly, repeats: true) let identifier = "curso\(String(Index))" let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger) 

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

     import UserNotifications let trigger = UNCalendarNotificationTrigger(dateMatching: DateComponents(hour: 1, minute: 5, weekday: 2), repeats: true) print(trigger.nextTriggerDate() ?? "nil") let content = UNMutableNotificationContent() content.title = "title" content.body = "body" // make sure you give each request a unique identifier. (nextTriggerDate description) let request = UNNotificationRequest(identifier: "identify", content: content, trigger: trigger) UNUserNotificationCenter.current().add(request) { error in if let error = error { print(error) return } print("scheduled") } 

    Не забудьте спросить у пользователя разрешение на расписание уведомлений в AppDelegate:

     func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. UNUserNotificationCenter.current().requestAuthorization(options:[.badge, .alert, .sound]) { granted, error in // your code } return true } 
    Interesting Posts

    Сохранение пространства на рабочей станции сервера Windows 2008

    Angular2 – как вызвать функцию компонента извне приложения

    Имущество (без дополнительной обработки) против публичного поля

    Как создать одноэлементный class в объекте C

    как преобразовать строку в числовые значения в mongodb

    Как может срез содержать?

    Центрирование div вертикально и горизонтально с помощью jQuery

    Почему java.util.concurrent.ArrayBlockingQueue использует «while» вместо «if» вокруг вызовов для ожидания ()?

    Создание точки останова в Xcode для непризнанного селектора

    Как получить IP-адрес?

    Как сделать Android-представление, которое переворачивается между видами на салфетки / fling

    Можно ли заполнить массив номерами строк, которые соответствуют определенным критериям без цикла?

    Можно ли связать команды привязки ключей в возвышенном тексте 2?

    Что такое правильное значение «-moz-appearance», чтобы скрыть стрелку вниз элемента

    Как я могу создать базовый UIButton программно?

    Давайте будем гением компьютера.