Tag: Localbroadcastmanager

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?[“完整名称”] 您可以在与通知一起发布的字典中添加任意数量的值,这非常容易实现。 希望本文对您有所帮助。