NSNotificationCenter的简单介绍

NotificationCenter机制使用了操作系统的功能。而实际上,NSNotification就是通过KVO的方式来进行消息的『广播』。通过NSNotificationCenter可以让对象之间进行进行通讯,这些对象相互间可以不认识。当你用一个并行的流来推送通知,或者刷新数据库,并希望在界面中能够看到时,这非常有用。(我们对系统某些事件的监听的时刻就可以使用这个方法,例如键盘抬起落下操作,某个textfield失去第一响应者的时刻,都会发送一个通知给通知中心,通过监听这些通知,我们就可以与系统交互。)

[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(keyBoardDicChanged:)name:UIKeyboardWillChangeFrameNotification object:nil];

//方法实现
-(void)keyBoardDicChanged:(NSNotification *)notification{
    //可以先打印notifi开看看有什么消息名字
    CGRect endRect = [[notifi.userInfo objectForKey:@"UIKeyboardFrameEndUserInfoKey"] CGRectValue];
    ......//屏幕在键盘改变的时候重新布局
    [self.view layoutIfNeeded];   
}

而NotificationCenter的简单应用的步骤:

//1.注册消息
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(方法) name:@"消息名字" object:nil];

//2.方法实现
-(void)方法:(NSNotification *)notfication{
    //获取传递的数据
    NSDictionary * dataDic = notfication.object; 
}

//3.发布消息
[[NSNotificationCenter defaultCenter]postNotificationName:@"消息名字" object:传回的东西];

你可能感兴趣的:(NSNotificationCenter的简单介绍)