Для создания локальных уведомлений по дням и часам в Swift вы можете воспользоваться фреймворком UserNotifications
.
Первым шагом нужно добавить импорт UserNotifications
в ваш файл ViewController:
import UserNotifications
Затем вы можете создать функцию, которая будет устанавливать локальные уведомления. Эта функция может, например, вызываться при загрузке приложения или при изменении настроек пользователем.
func setupLocalNotifications() { let center = UNUserNotificationCenter.current() // Запрашиваем разрешение для отправки уведомлений center.requestAuthorization(options: [.alert, .sound]) { (granted, error) in if granted { // Разрешение получено, создаем уведомления self.createNotifications() } else { // Разрешение не получено } } }
Внутри функции createNotifications
вы можете создать одно или несколько уведомлений, указывая дату и время их отправления.
func createNotifications() { let center = UNUserNotificationCenter.current() center.removeAllPendingNotificationRequests() // Очищаем предыдущие уведомления // Создаем контент уведомления let content = UNMutableNotificationContent() content.title = "Напоминание" content.body = "Текст вашего уведомления" content.sound = UNNotificationSound.default // Создаем триггер, указывающий время и дату отправки уведомления var dateComponents = DateComponents() dateComponents.calendar = Calendar.current dateComponents.hour = 10 // Час, когда будет отправлено уведомление dateComponents.minute = 0 // Минута, когда будет отправлено уведомление // Создаем условие повторения уведомления по дням недели let repeatDays: [Int] = [2, 4, 6] // Дни недели, например, вторник, четверг и суббота for day in repeatDays { dateComponents.weekday = day let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true) // Создаем запрос на отправку уведомления с созданными контентом и триггером let request = UNNotificationRequest(identifier: "dailyNotification(day)", content: content, trigger: trigger) // Добавляем запрос в центр уведомлений center.add(request) { (error) in if let error = error { // Возникла ошибка при добавлении уведомления } } } }
Теперь у вас есть функция setupLocalNotifications
, которая запрашивает разрешение отправки уведомлений и вызывает функцию createNotifications
, которая создает уведомления для выбранных дней недели и времени.
Вы можете вызвать функцию setupLocalNotifications
в нужном месте вашего кода для инициализации и настройки локальных уведомлений.