SwiftUI-具有多个Core Data实体的本地通知标识符

时间:2020-08-05 16:51:47

标签: swift core-data swiftui uilocalnotification identifier

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

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

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

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)

1 个答案:

答案 0 :(得分:1)

代替使用self.items.itemsData[item].title,每次为特定的UNNotificationRequest创建新的item时,都是相同的,而使用UUID().uuidString则每次创建一个新的唯一标识符叫。如果更适合您的情况,则可以将此唯一标识符与title结合使用。

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