本地通知标识符

时间:2018-08-06 09:17:49

标签: ios swift xcode push-notification unusernotificationcenter

我有以下用于请求并发布通知的代码:

let request = UNNotificationRequest(identifier: "timerDone", content: content, trigger: trigger)

UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)

它位于for循环中,因此通常会执行多次-循环的每次迭代都会导致运行此代码,但是对于每次迭代,请求都具有相同的标识符。

这是否意味着我要覆盖在循环的先前迭代中刚刚添加的先前通知? (我问的原因是,即使有多个计时器,在关闭应用程序后也只会通过一个通知;该通知通常是针对计时器的通知,这是for循环中的最后一次迭代(此代码在应用程序中确实已辞职)活动))。

2 个答案:

答案 0 :(得分:2)

Apple documentation中所述:

  

如果在安排新通知时使用相同的标识符,则   系统使用该命令删除先前计划的通知   标识符并将其替换为新的标识符。

您始终可以添加唯一的标识符标识符,简单的迭代索引/数字,UUID,项目ID或其他任何内容。

let identifier = "timerDone-\(index)"

答案 1 :(得分:1)

是的,它会将您的旧通知替换为新通知。

您可以在循环内进行此更改:

let strIdentifier = "timerDone_\(i)"
let request = UNNotificationRequest(identifier: strIdentifier, content: content, trigger: trigger)

UNUserNotificationCenter.current().add(request, withCompletionHandler: nil)