Повторное локальное уведомление ежедневно в заданное время с быстрым
Я новичок в разработке 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)
Ответы
Ответ 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