iOS中通知的使用

一、NSNotificationCenter简介:
NSNotificationCenter是一个单进程范围内的全局通知中心,每一个App都有一个单例的NSNotificationCenter,通过一个字符串来注册和触发通知,为不同类之间进行消息传递和函数调用提供了一种比较简单的方法,类之间的关联性比较弱。

二、NSNotificationCenter一般使用步骤
1.通过[NSNotificationCenter defaultCenter]类获取通知中心实例。
2.在想要被通知的类里面注册通知,相当于注册了一个观察者:addObserver:selector:name:object:
3.触发通知:postNotificationName:object:
4.在不需要观察者或者观察者对象释放前,移除观察者:removeObserver:name:object:

三、NSNotificationCenter需要注意的地方
1.通知中心并不retain添加进来的观察者对象,当你添加了一个观察者对象到通知中心,然后释放了观察者对象,但是没有从通知中心中移除,当通知中心向它发送消息时,会发生异常。
2.通知中心(NSNotificationCenter)只能在单进程内传送消息,如果想要在多进程内传送消息,使用NSDistributedNotificationCenter,但是这个类只能在Mac OX中使用。也就是说,ios不支持进程间的通知。
3.通知中心消息的发送是同步的,postNotification方法是在所有消息都发送完毕之后才返回的。
如果想要使用异步通知中心,要使用NSNotificationQueue类。

四、NSNotificationQueue简介
1.NSNotificationQueue对象作为通知中心(NSNotificationCenter)的一个缓冲区。
2.当一个通知中心分发通知的时候,将已经注册的通知对象放入队列,通知可以推迟到当前通知队列执行完毕或者空闲时发送。
3.重复的通知也可以合并,当有多个一样的通知存在时,只发送一次。
4.通知队列通过一个先入先出的队列维护通知(NSNotification)。当通知排到队列的前面,通知被发送到通知中心,通知中心将通知发送到所有注册的观察者对象。
5.每个线程都有一个默认的通知队列,和全局的NSNotificationCenter绑定。你可以创建你自己的通知队列,或者为通知中心和线程创建多个通知队列。

五、NSNotificationQueue使用步骤
1.创建新的或者获取现有的通知队列,都与全局通知中心绑定。
实例方法:initWithNotificationCenter:
类方法:defaultQueue
2.添加通知到通知队列:enqueueNotification:postingStyle:coalesceMask:forModes:
  从队列中删除通知:dequeueNotificationsMatching:coalesceMask:
3.当通知添加到队列中以后,通知会以队列的方式,排队发送。
  通知以异步的方式发送。

六、iOS本地通知
1.UILocalNotification,可用于iOS4.0及以上,它可以像推送服务那样弹出通知,但是只是本地触发的,非服务器端触发。
2.属性:
(1)fireDate:发送通知的时间
(2)alertBody:弹出框显示的文本
(3)alertAction:右侧按钮文本
(4)alertLaunchImage:进入程序时,启动画面的图像名称
(5)applicationIconBadgeNumber:应用图标上标的数字
(6)soundName:弹出通知时播放的声音,是应用内部的资源文件。
3.使用:[[UIApplication sharedApplication] scheduleLocalNotification:notification]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值