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



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

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

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

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)

最新更新