Kevin Lieser
Kevin Lieser

Reputation: 977

Local Notification overrides previous local notification

I have a macOS Swift app where I am using local notifications. Here is a small methode for sending these:

func sendPushMessage(title: String, message: String, userInfo: [String:Any]) {
        let notification: NSUserNotification = NSUserNotification()
        notification.title = title
        notification.informativeText = message
        notification.userInfo = userInfo
        notification.soundName = NSUserNotificationDefaultSoundName
        notification.deliveryDate = Date()
        self.center.scheduledNotifications = [notification]
}

This works for a long time and I have received all my notification (as well all notifications were shown in notification center). But actually the latest notification overrides the previous one. Let's say there is only one notification slot that always get overridenn with the latest notification.

In my notification center there is also only a single notification visible (the latest) instead of all received notifications. I have no idea when this "stops working" but I think one or two month ago? I am still on 10.13.6 high sierra.

The notification settings are correct.

Upvotes: 1

Views: 862

Answers (2)

Kevin Lieser
Kevin Lieser

Reputation: 977

I have no idea whatg I have done "wrong".

Fixed the issue by changing notification order (in notification settings) to manually by app and then it worked. After that I could change it back to newest and still working. Was only a bug in macOS for sure.

Upvotes: 1

Ahmet Sina Ustem
Ahmet Sina Ustem

Reputation: 1090

As refer documentation, you should set different identifier for each notification.

The identifier is unique to a notification. A notification delivered with the same identifier as an existing notification replaces the existing notification rather than causing the display of a new notification.

You can set like that

notification.identifier = "yourIdentifier"

Upvotes: 0

Related Questions