IOS通知中心(观察者模式)[NSNotificationCenter defaultCenter]

通知机制KVO都是通过—------观察者模式实现的
KVO,  即:  Key-Value Observing  ,它提供一种机制,当指定的对象的属性被修改后,则对象就会接受到通知。简单的说就是每次指定的被观察的对象的属性被修改后,KVO就会自动通知相应的观察者了。 
前者是:被观察对象直接向观察者发送通知
后者是:一个中心对象为所有观察者提供变更通知

参数解释:

 defaultCenter,消息中心只有一个,通过类方法获取它的单例。

 addObserver,添加监听者实例,此处为当前实例

 selector,observer中的一个方法指针,当有消息的时候会执行此方法,并把相关上下文以参数传递过去

 name,注册所关心消息的名称,

 object这个是对消息发送方的一个过滤,此参数据说明当前监听器仅对某个对象发出的消息感兴趣。

如下:

[[NSNotificationCenter defaultCenteraddObserver:self selector:@selector(notificationMethod:) name:UIApplicationDidEnterBackgroundNotification object:@"大大];  //相同NotificationName只接受object:@大大的发送者的接收,如果object = nil,相同NotificationName都接收


 [[NSNotificationCenter defaultCenterpostNotificationName:UIApplicationDidEnterBackgroundNotification object:@"大大" userInfo:@{@"name":@"1111"}];

     [[NSNotificationCenter defaultCenterpostNotificationName:UIApplicationDidEnterBackgroundNotification object:@"大大111" userInfo:@{@"name":@"2222"}];



通过实现:
  // 注册观察者

[[NSNotificationCenter

  defaultCenter] addObserver:self selector:@selector(handleMessage:) name:kDZTestNotificatonMessage object:nil];



//被观察者----->发送通知给观察者

[[NSNotificationCenter

  defaultCenter] postNotificationName:kDZTestNotificatonMessage object:Nil userInfo:@{}];



- (void)alipayReturn:(NSNotification *)result {

    NSLog(@"112");

    NSDictionary * resultDic = result.object;

}


//退出要移除观察对象,不然耗内存(每时每刻等待通知接收,好性能)

-(void)

dealloc

{

    [[NSNotificationCenter

      defaultCenterremoveObserver:self];

}



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小一呵呵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值