尝试根据标识符删除多个本地通知
Trying to remove multiple local notifications based on the Identifier
我有一个可以创建用户的应用程序。这些用户中的每一个都可以创建一个对象。我让每个用户都能够在该对象上设置本地通知。我对通知标识符的命名约定是使用人名 + 他们创建的对象的名称。我想做的是当那个人从应用程序中删除时删除所有通知。
我需要以某种方式遍历该人的所有对象,并使用该名称来标识我需要删除的通知。
这是我正在尝试的
// 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)
它似乎不起作用,我的 return 行抛出一个错误,内容为:UNNotificaionRequest 类型的值没有成员包含。
检查以下代码是否适合您。
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])
}
}
}
我有一个可以创建用户的应用程序。这些用户中的每一个都可以创建一个对象。我让每个用户都能够在该对象上设置本地通知。我对通知标识符的命名约定是使用人名 + 他们创建的对象的名称。我想做的是当那个人从应用程序中删除时删除所有通知。
我需要以某种方式遍历该人的所有对象,并使用该名称来标识我需要删除的通知。
这是我正在尝试的
// 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)
它似乎不起作用,我的 return 行抛出一个错误,内容为:UNNotificaionRequest 类型的值没有成员包含。
检查以下代码是否适合您。
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])
}
}
}