使用NSLocalNotification进行多个提醒

时间:2016-06-03 18:58:40

标签: swift core-data nsdate localnotification

我正在创建一个基于提醒的应用,我现在唯一的问题是能够在我的应用上实现提醒。

基本上,向用户呈现UITableView,用户可以在其中添加活动,并且我希望通过向用户发送通知来触发这些日期,以提醒他们在保存到核心数据的日期上的事件。

此时,我仍然不明白NSLocalNotification是如何工作的我听到一些用户在这里说苹果只允许一次处理64个通知而我只设法创建1但是在创建另一个事件时,它是当我使用

调试我的应用程序时,下降到0并随机返回到1个事件

UIApplication.sharedApplication().scheduledLocalNotifications?

我可以看到我设置的通知,但不能看到其他通知。

swift中的任何示例应用都会帮助我理解如何设置多个通知来添加,编辑和删除它们。

提前致谢并快乐编码

1 个答案:

答案 0 :(得分:1)

解决此问题的最简单方法是创建通知并安排通知。如果您要删除特定通知,则必须保留其引用并在应用启动时保留它们,但是您始终可以使用UIApplication.sharedApplication().cancelAllLocalNotifications()

删除所有当前安排的通知

这是一个将通知安排在同一天同时开启5天的示例:

let secondsInADay = 60 * 60 * 24
for i in 1...5 {
  var dayString = "\(i) days"
  if i == 1 {
    dayString = "\(i) day"
  }

  let notification = UILocalNotification()
  notification.fireDate = NSDate(timeInterval: Double(i * secondsInADay), sinceDate: NSDate())
  notification.alertBody = "It has been \(dayString) since you last opened the app."
  notification.soundName = UILocalNotificationDefaultSoundName

  if notification.fireDate?.timeIntervalSinceNow > 0 {
    UIApplication.sharedApplication().scheduleLocalNotification(notification)
  }
}

此外,您是对的,每个应用程序都有一个队列,用于尚未触发的本地通知。该队列可以容纳64个单独的通知(重复通知只计为64个中的1个)。