Swift中的NotificationCenter
通知分派机制,可将信息广播到注册的观察者。
资料来源 –苹果文件。
在开始这个话题之前,让我们看看为什么需要这个?
在移动应用程序开发中,有时我们要实现一些要求,例如面向处理程序,将数据从一个类传递到另一类,调用任何其他方法或函数。 以前我写过关于代理模式的文章 ,这是两个类进行交流的最佳方式,但是委派对于广播单打或同时通知方法是无济于事的。
这是有关NotificationCenter的一些优点-
- 从根本上说,它有助于观察和广播单身人士从一个班级到多个班级。
- 将单身人士从一个班级发布到多个班级。
- 接收来自多个班级的单身人士。
让我们看看如何使用它–
编写您的 NotificationCenter 进行观察:–
接收器📡
NotificationCenter .default
。 addObserver (自我,
选择器 :#selector( loginSuccess ),
名称 : NSNotification .Name ( “ com.user.login.success” ) , 对象 :无
这是接收的通知注册过程。 基于密钥, NotificationCenter
可以观察。
在注册NotificationCenter进行观察的过程中–
NotificationCenter.default
这是通知变量,如果您有更多通知,则可以在您的类中全局创建它。
addObserver(self,
— —这是我们要进行观察者通知的类。
selector: #selector(loginSuccess)
—这是方法名称,只要通知将收到此方法调用即可。
name: NSNotification.Name(“com.user.login.success”)
—这是通知密钥🔑,对于任何新的通知注册方法而言,它应该是唯一的。 对于调用相同的方法,它应该是相同的。 该键🔑只能调用与我们注册为键🔑并锁定🔐相同的方法。
object: nil)
—在对象内部,您可以传递任何对象或任何变量值( Bool, String, Dictionary, Array, Int
)。 我将就这个主题向您解释。 当前,我们设置nil值是因为在此过程中我们将不传递任何值。
如何为通知中心过帐数据?
在此过程中,我们将在NotificationCenter的帮助下转到上述方法。 这就像广播公司。
广播(发布或发送)🚀
这将从不需要相同类的任何地方调用通知方法。 它将基于密钥识别观察者。 您也可以通过此帖子通知传递数据。
NotificationCenter .default
。 帖子 (名称: NSNotification .Name(“ com.user.login.success”),
对象 :无)