(七十二)自定义通知NSNotification实现消息传递

       众所周知,iOS中一般在类之间传递消息使用较多的是delegate和block,还有一种是基于通知进行的消息传递,我们常常是使用系统的通知,来实现一些功能,例如利用键盘尺寸改变的通知,我们可以根据键盘的位置改变输入框的位置,从而避免输入框被键盘遮挡。

       除了利用系统的通知,我们还可以通过自己创建通知的办法来完成一些消息传递,以XMPP登录为例,如果用户之前没有注销,那么在启动客户端时应该自动登录,登录在XMPP的工具类完成,而当前视图在登陆完成之前应当用网络连接的指示器(Activity Indicator)旋转指示,而连接完成后应当隐藏指示器,何时连接成功就需要工具类通知视图控制器,我们这次用通知来实现。

       通知要实现非常简单,只需要监听和发送即可,回忆一下当时监听键盘,需要指定通知的名称,标准格式是类名+功能+Notification,比较长,因此用一个常量字符串来获取类名,防止输入错误。

①创建常量字符串:

直接在发送通知的.m头部写:

NSString *const WCLoginStatusChangeNotification = @"WCLoginStatusNotification";
然后在.h中声明,以便监听通知时调用:

extern NSString *const WCLoginStatusChangeNotification;
②让视图控制器监听通知:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(loginStatusChange:) name:WCLoginStatusChangeNotification object:nil];
然后实现监听方法,参数为 NSNotification对象,其中有一个userInfo成员属性用于传递消息,是一个字典。

③发送一个通知:

[[NSNotificationCenter defaultCenter] postNotificationName:WCLoginStatusChangeNotification object:nil userInfo:<字典>];
传递参数利用的是userInfo参数,只需要赋一个字典,即可传递到监听的事件函数中。





转载于:https://www.cnblogs.com/aiwz/p/6154136.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值