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

iOS中通知中心的概念知识吧(objective - c版)

2016-04-15 22:39 323 查看
之前在公司的project中遇到了要用到通知的地方,解决后过了几个月了现在总结一些网上找的资料,在这里简单summary一下iOS中通知中心的概念知识吧(objective
- c版)

一、什么事通知中心?

(1)通知中心:一个应用程序只有一个通知中心(单例对象),在程序内部提供了消息广播的一种机制,负责信息的传递与交互。即通知中心就是一个信息传递者,把接收到的消息根据内部的一个消息转发表,将消息转发给需要的对象。

(2)通知中心是基于观察者模式的,它允许注册,删除观察者。

(3)一个通知中心NSNotificationCenter可以有很多的通知消息NSNotification,对于每一个NSNotification可以有很多的观察者Observe来接收通知。

重点用法:

二、创建通知中心(一个程序只有一个通知中心,可创建多次,反正都是同一个)

NSNotificationCenter *center = [NSNotificationCenter defaultCenter];

三、通知的发布(可以自定义通知,也可以是使用系统提供的通知)

[center postNotificationName:(NSString*) object:(id) userInfo:(NSDictionary*)];

或者

[center postNotificationName:(NSString*) object:(id)];

postNotificationName:通知的名称

object:通知的发布者

userInfo:通知的额外信息

四、注册通知监听器

[center addObserve:(id) selector:(SEL) name:(NSString*) object:(id)];

addObserve:监听器,即谁要接受这个通知,这里传入需要接受通知的对象。

selector:监听器接收到通知后调用这个函数进行处理,这里要注意将当前通知对象作为参数传入,类似于button的点击事件一样把button传入点击后执行的方法中。

name:所接受的通知的名称,只接收这个name的通知,如果为nil则接收全部通知。

object:通知发布者,只接受这个名称的对象所发布的通知,如果为nil,则接收人回想发布的通知。

五、取消注册通知监听器

(1)[[NSNotificationCenter defaultCenter] removeObserve:(id)];

取消指定对象监听的全部注册监听。

(2)[[NSNotificationCenter defaultCenter] removeObserve:(id)
name:(NSString *)];

取消指定对象监听的指定发布者的指定名称的通知。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: