概述
一、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]
最后
以上就是幸福丝袜为你收集整理的iOS中通知的使用的全部内容,希望文章能够帮你解决iOS中通知的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复