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

猜你喜欢

转载自poolo.iteye.com/blog/2002020
ios