[ios]NSNotification

 

这是一个观察者模式。

    [[NSNotificationCenterdefaultCenter]addObserver:selfselector:@selector(receive:) name:nilobject:nil];

name:监听名称为xx的信息 如nil监听所有

object:监听object为xx的信息 如nil监听所有

 

-(void)receive:(NSNotification*)ns{

    NSLog(@"ns.name:%@",ns.name);

    NSLog(@"ns.object:%@",ns.object);

    NSLog(@"ns.userInfo size:%d",ns.userInfo.count);

    for(id a in ns.userInfo){

        NSLog(@"a:%@",a);

    }

 

}

 

NSNotification对象含有.name .object .userInfo 三个成员对象 分别为NSString NSObject NSDictionary

 

 

- (IBAction)btPressed:(id)sender {

    

    if(i%2){

        [[NSNotificationCenterdefaultCenter]postNotificationName:@"test"object:@"123"];

    }else{

        [[NSNotificationCenterdefaultCenter]postNotificationName:@"test"object:@"abc"];

 

    }

    i++;

    NSLog(@"button Pressed");

 

}

 

有三种发送方法

- (void)postNotification:(NSNotification *)notification;

- (void)postNotificationName:(NSString *)aName object:(id)anObject;

 

- (void)postNotificationName:(NSString *)aName object:(id)anObject userInfo:(NSDictionary *)aUserInfo;

实际上都一样 都是发送一个NSNotification 就是看你自己处理还是系统处理了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值