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 *)];
取消指定对象监听的指定发布者的指定名称的通知。
- 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 *)];
取消指定对象监听的指定发布者的指定名称的通知。
相关文章推荐
- Error Domain=NSCocoaErrorDomain Code=3840 "JSON text did not start with array or object and option t
- Struts2 JSONObject的使用
- Fatal error: Call to a member function fetch_array() on a non-object in E:\wamp\www\shop\index.php
- Swift学习: 从Objective-C到Swift
- java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
- 错误:*** -[NSUserDefaults setObject:forKey:]: attempt to insert non-property list object
- Objective-C单例设计模式
- Objective-C之NSBundle
- QObject派生类作为Qt 插件的Interface
- (转)js activexobject调用客户机exe文件
- Android JSONObject对null的处理
- Getting Spring Application context from a non bean object
- 《Effective Objective-C 2.0:编写高质量iOS与OS X代码的52个有效方法》 笔记3 为什么要用属性
- Swift与Objective-C API的交互
- Object-C 属性
- hello objective-c
- 深入理解Objective-C:方法缓存
- Objective-C之NSNotification Center(通知中心)
- 深入理解Objective-C:Category
- 使用Object.defineProperty实现简单的js双向绑定