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];