您的位置:首页 > 移动开发 > Objective-C

iOS基础知识:Objective-C 之 通知(Notification)

2015-09-12 15:04 471 查看

通知



本文中事先建好三个对象p1,p2,p3,因为与本文关系不大所以不在此作代码展示

新建一个通知(NSNotification),供以后由通知中心(NSNotificationCenter)去发送(Post),该步也可以省去,直接在要发通知时,由通知中心创建

NSNotification *notificaty = [NSNotification notificationWithName:@"help" object:p1];


设置了notification的三个属性,name为通知名,object为发送通知的对象,userInfo装上要传数据的字典,根据需要,可以省去

向通知中心注册两个观察者,一旦有相关通知下发,立即通知到观察者

[center addObserver:p2 selector:@selector(didReceiveNotification:) name:@"helps" object:nil];
[center addObserver:p3 selector:@selector(didReceiveNotification:) name:@"help" object:nil];


此处当p2收到helps的命令就会执行selector,当p3收到help的命令就会执行selector,object设置为nil,表示不管哪个对象发送了这个通知都会执行

发送通知,第1点只是有个通知,但是并未完成发送的动作,发送的动作由通知中心完成

[center postNotification:notificaty];


当一个观察者释放后,再去发送通知,还是会去调用selector,而在方法内的self实际上已经被释放了,这样是不安全的,所以在一个观察者释放前,需要移除注册的通知
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  通知