How to post and receive an NSNotifications (Objective C) | Notifications (in Swift)?

巧了我就是萌 提交于 2019-11-27 13:11:21

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];

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 :)

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!