嗨,我正在尝试迅速制作一个推送警报,该警报在当地时间每天早上7点关闭(不是格林尼治标准时间)。

这是我的代码:

    func scheduleLocalNotification() {

        var localNotification = UILocalNotification()
        localNotification.timeZone = timeZone
        //localNotification.fireDate = Here is where I need help.
        localNotification.alertBody = "FooBar"
        localNotification.alertAction = "BarFoo"

    }


我似乎无法弄清楚如何实现每天早上7点(本地时间早上7点)发送推送通知的代码。我该怎么做呢?是否存在可以执行此操作的NSDate对象?不同的代码在一起吗?

谢谢!

最佳答案

使用repeatInterval字段设置重复,并使用NSCalendar计算接下来的7 AM

let calendar = NSCalendar.currentCalendar()

// Calculate the next 7 AM
var date = calendar.dateBySettingHour(7, minute: 0, second: 0, ofDate: NSDate(), options:nil)
if date?.timeIntervalSinceNow < 0 {
    date = calendar.dateByAddingUnit(.CalendarUnitDay, value: 1, toDate: date!, options: nil)
}
localNotification.fireDate = date

// Set up a daily repeat
localNotification.repeatInterval = .CalendarUnitDay
localNotification.repeatCalendar = calendar

关于ios - 重复推送提醒Swift,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28608876/

10-09 10:03