创建在特定时间触发的本地通知

时间:2016-08-30 12:19:20

标签: ios swift xcode notifications uilocalnotification

我需要我的应用程序来存储应该在特定时间启动的一些local notifications

我的申请很简单。用户可以使用UIDatePicker预订时间。该通知将在预定时间前2分钟被解雇。

目前我正在尝试手动插入应该触发通知的时间。我正在使用此代码:

let notification = UILocalNotification()

self.timePicked = " 22:38:00 +0000"

timeForLocalPush = defaults.objectForKey("timeForLocalPush") as! String

timeForLocalPush = timeForLocalPush + self.timePicked

print(timeForLocalPush)  // this prints for this example today, 2016-08-30 22:38:00 +0000

dateFormatter.dateFormat = "YYY-MM-dd"

notification.fireDate = dateFormatter.dateFromString(timeForLocalPush)
notification.timeZone = NSCalendar.currentCalendar().timeZone
notification.alertBody = self.nameField.text! + " Har bokat tid nu!"


UIApplication.sharedApplication().scheduleLocalNotification(notification)

在预订时间后会立即触发通知。期望的行动是:

当前时间:14:17

此时的客户图书:15:00

本地通知设置为触发:14:58

如果您需要任何其他信息,请告诉我。谢谢

2 个答案:

答案 0 :(得分:1)

最初检查您的日期格式是否错误dateFormatter.dateFormat = "YYY-MM-dd",它位于dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"

例如

let localNotification1 = UILocalNotification()
    localNotification1.alertBody = "Your alert message "
    localNotification1.timeZone = NSCalendar.currentCalendar().timeZone
     let formatter = NSDateFormatter()
    formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
    localNotification1.fireDate = formatter.dateFromString("2016-08-30 22:38:00")


    UIApplication.sharedApplication().scheduleLocalNotification(localNotification1)

答案 1 :(得分:0)

请正确设置日期格式:

// this prints for this example today, 2016-08-30 22:38:00 +0000

//Your date format decalre:     dateFormatter.dateFormat = "YYY-MM-dd"

 dateFormatter.dateFormat = "YYYY-MM-dd HH:mm:ss"