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

来源:互联网 发布:淘宝网.棉拖鞋 妈妈型 编辑:程序博客网 时间:2024/06/05 16:51

通知


概述图
本文中事先建好三个对象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实际上已经被释放了,这样是不安全的,所以在一个观察者释放前,需要移除注册的通知
1 0
原创粉丝点击