尝试根据标识符删除多个本地通知

Posted

技术标签:

【中文标题】尝试根据标识符删除多个本地通知【英文标题】:Trying to remove multiple local notifications based on the Identifier 【发布时间】:2017-01-30 22:51:36 【问题描述】:

我有一个可以创建用户的应用。这些用户中的每一个都可以创建一个对象。我让每个用户都能够在该对象上设置本地通知。我对通知标识符的命名约定是使用人员姓名+他们创建的对象的名称。我想做的是从应用程序中删除该人时删除所有通知。

我需要以某种方式遍历该人的所有对象,并使用该名称来识别我需要删除的通知。

这是我正在尝试的

        // remove local notifications
        let center = UNUserNotificationCenter.current()
        let personToSerch = person.name!

        var filterdItemsArray = [String]()

        center.getPendingNotificationRequests  (notifications) in

            print("Count: \(notifications.count)")

            func filterContentForSearchText(searchText: String) 
                filterdItemsArray = notifications.filter  item in
                    return item.contains(searchText)
                
            

            filterContentForSearchText(searchText: personToSerch)
            print("\(filterdItemsArray.count) count of the filter array")

        

      center.removePendingNotificationRequests(withIdentifiers: filterdItemsArray)

它似乎不起作用,我的返回行抛出一个错误,内容为:UNNotificaionRequest 类型的值没有包含成员。

【问题讨论】:

【参考方案1】:

检查以下代码是否适合您。

let center = UNUserNotificationCenter.current()
        let personToSerch = person.name!
        center.getPendingNotificationRequests  (notifications) in
            for item in notifications 
                if(item.identifier.contains(personToSerch)) 
                    center.removePendingNotificationRequests(withIdentifiers: [item.identifier])
                
            
        

【讨论】:

对不起,我没有听从你的回答,idtodelete 是从哪里来的? idtodelete 是您要在案例中删除的 personToSerch。 我更新了我的代码以向您展示我想要完成的工作。我需要找到与该人相关的所有通知。可能不止一个,我应该能够通过使用人员姓名作为该数组的谓词来创建一个数组。 嘿,我不明白你为什么需要过滤数组。 'UNUserNotificationCenter.current().removePendingNotificationRequests(withIdentifiers: ["Person_name"])' 这不是直接对你有用吗?我猜在安排通知时您已经添加了可以直接使用的用户信息。 我遇到的问题是,每个人都可以有多个条目,每个条目都可以有一个本地通知。我如何命名它们是 personName+NameofEntry。这就是为什么我希望根据 personName 过滤数组的原因,我如何获得以该名称开头的所有通知。这有意义吗?

以上是关于尝试根据标识符删除多个本地通知的主要内容,如果未能解决你的问题,请参考以下文章

如何显示多个本地通知?

在 iOS 10 中安排和处理本地通知

无法更新本地预定通知内容

本地通知标识符

一次创建多个本地通知失败

动作按钮的 Swift UNNotificationRequest 标识符点击了本地通知