SwiftUI - 具有多个核心数据实体的本地通知标识符

SwiftUI - Local Notifications identifier with multiples Core Data entities

我有多个核心数据实体,一周中的每一天都有一个,每次我在其中一个中添加一个新项目时,我都想触发该特定项目的本地通知。由于我可以在多个实体中添加相同的项目,我该如何为每个实体设置一个唯一的标识符?

我使用该项目的标题作为标识符,因为它们完全不同,但如果我在两个实体中添加相同的标题,那么它将显示最后添加的项目的唯一通知,因为它将替换旧的一个是我想要的是在不同的实体中对相同的项目有不同的通知。

这是我的本地通知的实际代码

let content = UNMutableNotificationContent()
content.title = self.items.itemsData[item].title
content.body = "Notification"
content.sound = UNNotificationSound.default
                                            
var dateComponents = DateComponents()
dateComponents.weekday = 2
dateComponents.hour = 8
dateComponents.minute = 00
                                            
let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: true)
                                            
let request = UNNotificationRequest(identifier: self.items.itemsData[item].title, content: content, trigger: trigger)
                                            
UNUserNotificationCenter.current().add(request)

不要使用每次为特定 item 创建新的 UNNotificationRequest 时都相同的 self.items.itemsData[item].title 使用 UUID().uuidString 每次都会创建一个新的唯一标识符它被称为。如果这对您的情况更准确,您可以将此唯一标识符与 title 结合使用。

let request = UNNotificationRequest(identifier: self.items.itemsData[item].title + UUID().uuidString, content: content, trigger: trigger)