我有一个可以创建用户的应用。这些用户中的每一个都可以创建对象。我为每个用户提供了在该对象上设置本地通知的功能。我对通知标识符的命名约定是使用人员名称+他们创建的对象的名称。我想要做的是删除从该应用程序中删除该人的所有通知。
我需要以某种方式遍历该人的所有对象,并使用该名称来识别我需要删除的通知。
这是我正在尝试的
// 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类型的值没有成员包含。
答案 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])
}
}
}