2. iOS的消息传递方式-1.通知

1.通知
2.代理
3.Block
4.KVO

1.通知

1.1 原理:通知中心(NSNotificationCenter)在程序内部提供了一种广播机制。把收到的通知根据内部的消息转发表,消息转发给需要的对象。所以通知是一种一对多的消息传递方式。
1.2 使用:
a. 在需要的地方添加要观察的通知。
b. 在某地方发送通知。
1.3 一般情况下,通知使用在全局性的消息传递中,例如登录是否成功,秘钥的保存成功等,在AppleDelegate.m中发送通知,在控制器里面添加注册通知和删除相应的通知。

消息接收者

    /*
     1.观察者(消息接收者),self本控制器
     2.接收到消息(通知)后调用的方法
     3.接受到通知的名称
     4.接收哪个发送者通知,nil代表接受所有发送者的通知
     */
    
    [[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(fun:) name:@"notificationfun" object:nil];

-(void)fun:(NSNotification *)noti
{
    NSLog(@"-----%@",noti.userInfo);
}
//在通知注册的地方移除通知
-(void)dealloc {
    
    [[NSNotificationCenter defaultCenter] removeObserver:@"notificationfun"];
//或者
//尽量不要使用,这种移除方式可能会移除系统的通知
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}

消息发送者

    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"1",@"2",@"3",@"4",@"5",@"6",nil ];
    /*
     1.通知名称
     2.通知发送者
     3.附带信息
     */
    [[NSNotificationCenter defaultCenter]postNotificationName:@"notificationfun" object:self userInfo:dict];
    

你可能感兴趣的:(2. iOS的消息传递方式-1.通知)