NSNotification监听广播

     在处理监听传值的过程中,有一种广播机制,它通过注册广播中心,然后向各个收听者发送消息来实现传值。Notification Center是一个单例对象。

实现方式如下:

1.设置通知中心:

static MyNotificationCenter *center;

@implementation MyNotificationCenter
//用单例模式初始化
+(MyNotificationCenter *)sharedBoardCast
{
    if (center == nil) {
        center = [[MyNotificationCenter alloc]init];
    }
    return center;
}
-(void)sendMessage
{
    NSDictionary *dict = @{@"name":@"moxue"};
    //设置当前的通知中心并发送广播
    [[NSNotificationCenter defaultCenter]postNotificationName:@"moxue" object:self userInfo:dict];
}
@end

2.设置收听者

-(void)getCast
{
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(cast:) name:@"moxue" object:nil];//注册听众
}
-(void)cast:(NSNotification *)notice
{
    NSLog(@"%@",notice.userInfo);//得到消息后处理事务
}

实现:

MyNotificationCenter *center = [MyNotificationCenter sharedBoardCast];
    [center sendMessage];
    
    Listener *ls = [[Listener alloc]init];
    [ls getCast];

3.移除通知

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"moxue" object:self];//移除单个通知

[[NSNotificationCenterdefaultCenter] removeObserver:self];//移除当前所有通知

 

posted @ 2015-11-15 18:50  墨VS雪  阅读(230)  评论(0编辑  收藏  举报