Уведомление в Swift каждый день в установленное время?

Если кто-то запутался и думает, что это дубликат моего вопроса со вчерашнего дня, это не так. Там я спрашивал, как вызывать функцию каждый день, здесь я спрашиваю, как вызывать уведомление в определенное время каждый день.

Я ищу способ повторить местное уведомление каждый день в 7.00 утра. У меня есть эта настройка кода, чтобы получить день, месяц, год и т. Д.

let date = NSDate() let calendar = NSCalendar.currentCalendar() let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitMonth | .CalendarUnitYear | .CalendarUnitDay, fromDate: date) let hour = components.hour let minutes = components.minute let month = components.month let year = components.year let day = components.day 

Как я могу вызвать уведомление каждый день, когда время 7.00?

Сначала создайте объект календаря так же, как и вы:

 var calendar = NSCalendar() var calendarComponents = NSDateComponents() calendarComponents.setHour(7) calendarComponents.setSeconds(0) calendarcomponents.setMinutes(0) calendar.setTimeZone(NSTimeZone.defaultTimeZone) var dateToFire = calendar.dateFromComponents(calendarComponents) 

Теперь мы можем планировать уведомление ежедневно.

 localNotification.fireDate = dateToFire localNotification.setTimeZone(NSTimeZone.defaultTimeZone) localNotification.setRepeatInterval(kcfCalendarUnitDay) 

Синтаксис может быть не идеальным, я переводил с Obj-C, но вы должны получить общую идею.

  var now = NSDate() var calendar = NSCalendar.currentCalendar() var components = calendar.components(.CalendarUnitHour | .CalendarUnitMonth | .CalendarUnitYear | .CalendarUnitDay, fromDate: now) var d = NSCalendar.currentCalendar().dateFromComponents(components) if components.hour > 6 { d = NSDate(timeInterval: 60*60*24, sinceDate: d!) } var n = UILocalNotification() n.fireDate = d n.repeatInterval = NSCalendarUnit.CalendarUnitDay n.alertBody = "This is dayly notification" UIApplication.sharedApplication().scheduleLocalNotification(n) 
  • Вход в Facebook и Google+
  • UITests: deinit не вызывается
  • Исходный код запуска iOS не запущен
  • AVURLAsset не загружает видео в папку с документами, даже используя fileURLWithPath
  • Как обновить UITextField при получении ввода из UIPickerView?
  • FPS падает в SpriteKit
  • NSInternalInconsistencyException: может быть только один экземпляр UIApplication
  • Установка максимального количества символов `UITextView` и` UITextField `
  • Swift, добавьте салфетки для удаления UITableViewCell
  • Храните глобальные строки в iOS в Swift для использования в приложениях
  • Swift 3.0 AVAudioPlayer Воспроизведение аудио по музыке
  • Давайте будем гением компьютера.