Swift iOS Pearls:广播消息
大家好,我最近开始全职使用Swift进行iOS开发,我想遵循与Android Pearls相同的系列,但是向您展示在特定时刻对我有帮助的事情,尤其是可以完成某些事情。
作为一个Android开发人员,我通常使用Helper类LocalBroadcastManager来使用Broadcast消息在活动和服务等解耦的对象之间发送消息,这些对象在不同的线程中运行,因此广播消息是它们之间进行通信的最佳方式。
因此,我们如何在iOS中做到这一点,特别是在Swift中……
发送信息
为了发送消息,我们将使用帮助程序类NotificationCenter
,将获取该类的默认实例,然后使用方法post
发送消息,如下所示:
让anyDataToSend = [“ full_name”:“ John Doe”]
NotificationCenter.default.post(name:Notification.Name(rawValue:“ notification_key”),object:self,userInfo: anyDataToSend )
在该示例中,我们将使用键userInfo
发送notification_key
,还将参数或userInfo
传递给它。
接收讯息
要获取该特定密钥的消息,我们需要订阅NotificationCenter
,并指定密钥。 首先,我们需要重写ViewController中的viewWillAppear
函数,如下所示:
覆盖func viewWillAppear(_动画:布尔){}
在该方法内部,我们将预订订阅某个键的通知,并指定一个选择器以具有接收消息时的功能,请查看示例:
NotificationCenter.default.addObserver(自身,选择器:#selector(handleNotification(withNotification :)),名称:NSNotification.Name(rawValue:“ notification_key”),对象:nil)
我们声明handleNotification
方法如下:
func handleNotification(withNotification通知:NSNotification){}
为了获得我们之前发送的数据,我们可以这样做:
notification.userInfo?[“完整名称”]
您可以在与通知一起发布的字典中添加任意数量的值,这非常容易实现。
希望本文对您有所帮助。