23

是否有一个易于理解的模式如何发送 NSNotification(目标 C) | 通知(在 Swift 中)以及如何接收通知?代码片段?文档就该主题写了 150 页。想看一个简单的例子。

4

3 回答 3

73

发送通知:

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

接收它:

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

采取行动:

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

并处理它:

[[NSNotificationCenter defaultCenter] removeObserver:self];
于 2010-04-20T16:52:59.360 回答
2

相同的 Swift 版本:

每当您需要发布通知时:

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

在您要接收通知的控制器上:

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()
}
于 2019-06-29T14:15:00.297 回答
-1
  1. 注册推送通知配置文件并在您的应用程序中设置它,这里有一个链接来执行推送通知(请注意,您将需要一些服务器或捕获设备推送通知 ID 的东西,以便能够向这些设备发送通知)

  2. 接下来假设您使用 Windows Server 或与 .net 兼容的东西作为您的服务器,有一个很好的 C# api 编写用于向苹果服务器发送推送通知(一旦您拥有证书和注册的设备,您已存储在服务器中) ,这里有演示如何使用它,很酷这里有一个链接C# push notification src

差不多了...我使用 .Net 技术为您提供了快速解决方案,如果您使用的是其他东西,您可以四处浏览以查看您正在使用的平台中是否有可用的解决方案,我相信您会找到一些东西,如果不是您总是可以自己做:)

于 2010-04-20T15:54:51.030 回答