通知中心NSNotificationCenter

  • 每一个应用程序都有一个通知中心(NSNotificationCenter) 实例,专门负责协助不同对象之间的消息通信
  • 任何一个对象都可以向通知中心发布通知(NSNotification),描述自己做什么。其他感兴趣的对象(Observer)可以申请在某个特定通知发布时(或在某个特定的对象发布通知时)收到这个通知

//发送通知
//1,创建一个通知
//第一个参数notificationWithName:通知的标志的名称
//第二个参数object:发送通知的对象
//第三个参数useInfo:发送的内容(字典中可以包含任何对象)
NSNotification *not = [NSNotification notificationWithName:@"通知狗狗" object:self userInfo:@{
                                                @"name":@"猫猫",
                                                @"age":@2,
                                                @"do":@"爱狗狗"
                                                }];
//2,取得通知中心[NSNotificationCenter defaultCenter]
//3,发送通知
[[NSNotificationCenter defaultCenter] postNotification:not];
 //接受通知
/*
   第一个参数addObserver:谁接收通知
   第二个参数selector:接收之后干什么
   第三个参数name:就收什么名字的通知
   第四个参数object:接收谁的通知(如果传入nil,不管谁的通知我都接收)
*/
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(receiveNotification:) name:@"通知狗狗" object:nil];

- (void)receiveNotification:(NSNotification *)not
{
        NSLog(@"%@",not.useInfo);
}
//移除通知
/*
    第一个参数removeObserver:需要移除通知的观察者
    第二个参数name:移除什么名字的通知
    第三个参数object:不管是谁的通知都移除
*/
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"通知狗狗" object:nil];

你可能感兴趣的:(通知中心NSNotificationCenter)