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

时间:2017-01-30 22:51:37

标签: ios xcode swift3 uilocalnotification

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

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

这是我正在尝试的

        // 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 个答案:

答案 0 :(得分: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])
                }
            }
        }