这是一个观察者模式。
[[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 就是看你自己处理还是系统处理了。