Question

Is there an easy-to-grock pattern how to send a NSNotification (Objective C) | Notification (in Swift) and how to receive one? Code snippet? The docs write like 150 pages on the topic. Would like to see a quick example.

Was it helpful?

Solution

Send a notification:

[[NSNotificationCenter defaultCenter] postNotificationName:@"MyCacheUpdatedNotification" object:self];

Receive it:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(cacheUpdated:) name:@"MyCacheUpdatedNotification" object:nil];

Act on it:

- (void)cacheUpdated:(NSNotification *)notification {
[self load];
}

And dispose of it:

[[NSNotificationCenter defaultCenter] removeObserver:self];

OTHER TIPS

Swift Version for the same :

Whenever you need to post the notification :

NotificationCenter.default.post(name: NSNotification.Name(rawValue: "UpdateAccepted"), object: self)

On controller where you want to receive the notification :

override func viewDidLoad(_ animated: Bool) {
    super.viewDidLoad(true) {
    NotificationCenter.default.addObserver(self, selector: #selector(updateAccepted(notification:)), name: NSNotification.Name(rawValue: "UpdateAccepted"), object: nil)
}

deinit {
    NotificationCenter.default.removeObserver(self, name: NSNotification.Name(rawValue: "UpdateAccepted"), object: nil)
}

@objc func updateAccepted(notification: Notification) {
    handleRefresh()
}
  1. Register for a push notification profile and set it up in your application heres a link to do that PushNotification (Note you will need some server or something capturing device push notificaiton IDs in order to be able to send notification to those devices)

  2. Next assuming you are using a Windows Server or something .net compatible as your server there is a nice C# api written to send push notifications to the apple server (once you have a certificate and devices registered for it which you have stored in your server ), there are demos in here of how to use it, pretty cool heres a link C# push notification src

Thats pretty much it...i gave u a quick solution using a .Net technology, if you are using somethign else you can browse around to see if there are solutions available in the platform you are using im sure youll find something, if not you can alwyas make your own :)

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top