码迷,mamicode.com
首页 > 移动开发 > 详细

IOS学习之NSNotificationCenter消息机制

时间:2016-05-16 19:42:10      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:

NSNotificationCenter是 Cococa消息中心,统一管理单进程内不同线程的消息通迅。

 添加观察者接收通知:

//添加通知中心观察者
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(testMethod:) name:key object:self.person];

参数说明:

          addObserver: 观察者,谁来接收通知;

        selector: 收到通知后调用的方法;

        name: 注册所观察通知的名字

         object: 订阅该通知的对象,如果设置为nil 则接收所有通知

移除注册观察者:

     //移除某个指定的观察者
    [[NSNotificationCenter defaultCenter] removeObserver:self name:key object:self.person];
    
     //移除所有观察者
    [[NSNotificationCenter defaultCenter] removeObserver:self];

发送通知:

    //发送带参数的通知
     NSDictionary *dic =@{@"1":@1,@"2":@2};
    [[NSNotificationCenter defaultCenter] postNotificationName:key object:self.person userInfo:dic];
    //发送不带参数的通知
    [[NSNotificationCenter defaultCenter] postNotificationName:key object:self.person];
    
    //发送通知对象
    NSNotification *notification =[[NSNotification alloc]initWithName:key object:self.person userInfo:nil];
    [[NSNotificationCenter defaultCenter]postNotification:notification];

参数说明:

postNotificationName:通知名字 ,和注册通知观察者名字一致

object:通知的发送者

userInfo:通知传递的参数

 

接收通知:

//收到通知后调用方法
-(void)testMethod:(NSNotification*)notification
{
    NSLog(@"notification----->%@",notification);//接收到的通知对象
    id sender =[notification object];//获取发送者对象
    NSLog(@"sender----->%@",sender );
    NSDictionary *userInfo=[notification userInfo];//获取传递参数
    NSLog(@"userInfo----->%@",userInfo );
    
}

使用场景:

  1.不同页面之间的通知传值

 

          

IOS学习之NSNotificationCenter消息机制

标签:

原文地址:http://www.cnblogs.com/whoislcj/p/5499064.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!