Создайте уникальный идентификатор, используя объект UUID.init().uuidString
, и сохраните его в свой managedObject
при создании нового уведомления, как показано ниже.
// A unique identifier
let identifier = UUID.init().uuidString
// Managed Object
let managedObject = Notifications(context: context)
managedObject.setValue(identifier, forKey: "identifier")
//...
// Notification Content
let content = UNMutableNotificationContent.init()
//...
let request = UNNotificationRequest(identifier: identifier, content: content, trigger: trigger)
//...
А затем вы можете отменить уведомление, когда захотите.
context.delete(managedObject)
if context.hasChanges {
do {
// Cancel the registered notification with given identifier
if let identifier = managedObject.value(forKey: "identifier") as? String {
let center = UNUserNotificationCenter.current()
center.removeDeliveredNotifications(withIdentifiers: [identifier])
center.removePendingNotificationRequests(withIdentifiers: [identifier])
}
try context.save()
} catch {
fatalError()
}
}
ПРИМЕЧАНИЕ. Это неповторимое содержимое уведомления.