通知中心

每个应用中只会有一个通知中心对象: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]; //在对象销毁的时候同时从通知中心中删除监听者对象。

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容