`
119568242
  • 浏览: 420272 次
  • 性别: Icon_minigender_1
  • 来自: 深圳/湛江
社区版块
存档分类
最新评论

[ios]NSNotification

    博客分类:
  • ios
 
阅读更多

 

这是一个观察者模式。

    [[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 就是看你自己处理还是系统处理了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics