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?[“完整名称”]

您可以在与通知一起发布的字典中添加任意数量的值,这非常容易实现。

希望本文对您有所帮助。