1

我在用着:

var alarm = NSUserNotification()
var currentTime = NSDate()
alarmTime = currentTime.dateByAddingTimeInterval(60)
alarm.deliveryDate = alarmTime
NSUserNotificationCenter.defaultUserNotificationCenter().scheduleNotification(alarm)

要获得从当前时间开始一小时的通知,问题是我希望应用程序在第一个警报完成后自动设置另一个警报。NSTimer 似乎不起作用,因为一旦应用程序进入后台,它就会终止计时器。我能做些什么来实现这一目标?我可以将另一种方法搭载到 NSUserNotification 上吗

编辑:它也需要是动态的,我不能只设置通知的重复变量,因为我需要能够切换警报每次重置时的距离。

4

1 回答 1

1

您只需设置您的deliveryRepeatInterval 和deliveryTimeZone,如下所示:

// set your deliveryTimeZone to localTimeZone
alarm.deliveryTimeZone = NSTimeZone.localTimeZone()

// The date components that specify how a notification is to be repeated.
// This value may be nil if the notification should not repeat.
// alarm.deliveryRepeatInterval = nil

// The date component values are relative to the date the notification was delivered.
// If the calendar value of the deliveryRepeatInterval is nil
// the current calendar will be used to calculate the repeat interval.
// alarm.deliveryRepeatInterval?.calendar = NSCalendar.currentCalendar()

// to repeat every day, set .deliveryRepeatInterval.day to 1.
alarm.deliveryRepeatInterval?.day = 1
// to repeat every hour, set .deliveryRepeatInterval.hour to 1.
alarm.deliveryRepeatInterval?.hour = 1

 alarm.deliveryDate = NSDate().dateByAddingTimeInterval(60)

NSUserNotificationCenter.defaultUserNotificationCenter().scheduleNotification(alarm)
于 2015-01-13T06:09:09.110 回答