我有一个应用程序,我需要在特定的日期和时间收到通知。我使用以下代码来设置日期和时间。
let app = UIApplication.sharedApplication()
let notificationSettings = UIUserNotificationSettings(forTypes: [.Alert, .Sound], categories: nil)
app.registerUserNotificationSettings(notificationSettings)
let calendar = NSCalendar.currentCalendar()
let date = NSDateComponents()
date.hour = 5
date.minute = 0
date.month = 5
date.day = 21
date.year = 2016
date.timeZone = NSTimeZone.systemTimeZone()
let alarm = UILocalNotification()
alarm.fireDate = calendar.dateFromComponents(date)
alarm.timeZone = NSTimeZone.defaultTimeZone()
alarm.alertTitle = ""
alarm.alertBody = ""
alarm.soundName = "Sound.wav"
app.scheduleLocalNotification(alarm)
我已经允许通知,我可以在用户离开应用后十秒钟安排,但不会在特定时间内安排。
答案 0 :(得分:3)
你的代码是正确的,除了一件事,小时。 NSDate适用于24小时制。因此,如果您希望通知在下午5点发出,则需要将小时值设置为17
date.hour = 5 //this means 05:00 AM
date.minute = 0
date.hour = 17 //this mean 05:00 PM
date.minute = 0
P.S。 - 您的alertBody
和alertTitle
为空。您可能希望将其设置为显示的内容。
希望这会有所帮助。 :)
答案 1 :(得分:-1)
将日期设为以下
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = /*find out and place date format from http://userguide.icu-project.org/formatparse/datetime*/
let customDate = dateFormatter.dateFromString(/*your_date_string*/)
// your code
alarm.fireDate = customDate
your_date_string将是您希望安排通知的日期和时间。
希望这有帮助!