通知中心

2016-09-29  本文已影响23人  随风飘荡的小逗逼

每个应用中只会有一个通知中心对象:NSNotificationCenter,通过单例方法,创建唯一对象,通知中心对象负责管理所有的通知,包括通知的发出和管理“通知监听者”。

无论是通知发布者、还是通知的监听者,都是通过通知中心发布通知、设置监听者。

发布通知

方法:

postNotificationName:<#(nonnull NSString *)#> object:<#(nullable id)#> userInfo:<#(nullable NSDictionary *)#>

举例:

name:通知的名字(监听者就是通过这个名字来判断是否是自己需要监听的通知)

object:谁发布的通知

userInfo:通知的内容(这里面包含了通知的内容)

[[NSNotificationCenter defaultCenter] postNotificationName:@“通知的名字”   object: obj1 userInfo:@{} ];

设置监听者

方法:

addObserver:<#(nonnull id)#> selector:<#(nonnull SEL)#> name:<#(nullable NSString *)#> object:<#(nullable id)#>

举例:

observer:监听者

selector:监听者需要执行的方法

name:通知的名字

object:监听那个对象

[[NSNotificationCenter defaultCenter] addobsever:obj1 selector:(action:) nam:@“通知的名字” object:obj2];

用户设备的状态改变的时候会向通知中心发出的通知:

键盘在状态改变的时候会向通知中心发出的通知:

为了防止在监听者对象销毁的时候,监听中心仍然有这个监听者,从而当其监听的某个通知发生的时候,向一个已经销毁的对象发送通知,需要在对象销毁的时候,从通知中心把对应的监听者同时删除,需要重写:-(void)dealloc:

-(void)dealloc{

[[NSNotificationCenter defaultCenter] removeobsever]; //在对象销毁的时候同时从通知中心中删除监听者对象。

}

上一篇 下一篇

猜你喜欢

热点阅读