Подтвердить что ты не робот

Повторное локальное уведомление ежедневно в заданное время с быстрым

Я новичок в разработке iOS, но создал приложение, и я пытаюсь создать ежедневное уведомление в течение установленного времени. В настоящее время уведомление выполняется один раз для данной даты/времени. Я не уверен, как использовать метод repeatInterval для ежедневного планирования. Каков наилучший способ повторить уведомление ежедневно? любая помощь была бы высоко оценена (Y).

    var dateComp:NSDateComponents = NSDateComponents()
    dateComp.year = 2015;
    dateComp.month = 06;
    dateComp.day = 03;
    dateComp.hour = 12;
    dateComp.minute = 55;
    dateComp.timeZone = NSTimeZone.systemTimeZone()

    var calender:NSCalendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)!
    var date:NSDate = calender.dateFromComponents(dateComp)!

    var notification:UILocalNotification = UILocalNotification()
    notification.category = "Daily Quote"
    notification.alertBody = quoteBook.randomQuote()
    notification.fireDate = date
    notification.repeatInterval = 

    UIApplication.sharedApplication().scheduleLocalNotification(notification)
4b9b3361

Ответ 1

Для повторения уведомления вам необходимо указать значение NSCalendarUnit, например "HourCalendarUnit" или "DayCalendarUnit".

Просто добавьте этот код, чтобы ежедневно повторять локальное уведомление:

notification.repeatInterval = NSCalendarUnit.CalendarUnitDay

Ответ 2

Итак, пришлось слегка модифицировать @vizllx над кодом. Вот новая строка:

notification.repeatInterval = NSCalendarUnit.Day 

Вот полный рабочий пример, который я использовал:

let notification = UILocalNotification()

  /* Time and timezone settings */
  notification.fireDate = NSDate(timeIntervalSinceNow: 8.0)
  notification.repeatInterval = NSCalendarUnit.Day
  notification.timeZone = NSCalendar.currentCalendar().timeZone
  notification.alertBody = "A new item is downloaded."

  /* Action settings */
  notification.hasAction = true
  notification.alertAction = "View"

  /* Badge settings */
  notification.applicationIconBadgeNumber =
  UIApplication.sharedApplication().applicationIconBadgeNumber + 1
  /* Additional information, user info */
  notification.userInfo = [
    "Key 1" : "Value 1",
    "Key 2" : "Value 2"
  ]

  /* Schedule the notification */
  UIApplication.sharedApplication().scheduleLocalNotification(notification)
}

Ответ 3

var repeatInterval: NSCalendarUnit

= > в документах говорится: "Календарный интервал, в который нужно перенести уведомление".

так: используйте NSCalendarUnit.CalendarUnitDay