添加后如何访问通知的UUID.uuidString标识符?假设我要删除该通知,该怎么称呼?
我不能对一个项目使用唯一的字符串,因为在不同的Core Data实体中,我可能在不同的时间有两个通知,如果我使用on作为字符串,它将影响同一项目的所有通知。
proc power;
onewayanova
test = overall
groupmeans = 1814120 | 1344300 | 953580 | 1352900
stddev = 1879922.09 969317.15 441433.68 970670.65
npergroup = 3 4 5 4
power = .
;
run;
答案 0 :(得分:1)
使用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()
}
}
注意:这是不可重复的通知内容。
答案 1 :(得分:1)
由于要在testData
中添加与特定元素相对应的本地通知,因此可以向attribute
对象Core Data
添加新的testData
并将其命名为{{ 1}}。重新创建notificationIdentifier
核心数据实体的模型,然后在将testData实体保存到核心数据之前,设置testData
值。
notificationIdentifier
您可以在此处获取特定let notificationIdentifier = UUID().uuidString
let request = UNNotificationRequest(identifier: notificationIdentifier, content: content, trigger: trigger)
//...
UNUserNotificationCenter.current().add(request)
//...
testEntity.notificationIdentifier = notificationIdentifier
的{{1}},并从标识符中删除旧的本地通知,并使用新的notificationIdentifier
创建新的本地通知,并更新新的{{ 1}}到核心数据testEntity
。