NSNotification 通知的使用

第一种方式

通知的创建,指定通知的名字,是一个通知的标识
object:通知所携带的对象

NSNotification *notify = [NSNotification notificationWithName:@"showFont" object:fontName];
第二种 创建通知的第二种方法,当想要发送的内容不止一个时,通过userInfo 字典发送
NSNotification *notify2 = [NSNotification notificationWithName:@"showFont" object:fontName userInfo:@{@"fontName":fontName,@"object":fontName}];
第三种 实例方法创建通知
NSNotification *notify3 = [[NSNotification alloc]initWithName:@"showFont" object:fontName userInfo:@{@"fontName":fontName,@"object":fontName}];
获取通知中心 ,系统提供处理通知的单例,
 NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
发送通知
 [center postNotification:notify3];
另外一些方法 发通知
    /*
    //给定通知名字、要携带的对象,以及要发送的内容userInfo,由通知中心去创建通知并发送出去
    [center postNotificationName:@"showFont" object:fontName userInfo:@{@"fontName":fontName,@"object":fontName}];
    //给定指定的通知名和携带的对象,由通知中心创建通知并发送出去
    [center postNotificationName:@"showFont" object:fontName];
     */

注册接收的通知


    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showFontName:) name:@"showFont" object:nil];

参数一:监听通知的对象
参数二: 当消息中心发送消息时,self(监听对象)要执行的方法
参数三:接收的通知名字
参数四:被监听的对象,nil为任意对象

移除监听
[[NSNotificationCenter defaultCenter] removeObserver:self name:@"showFont" object:nil];
移除所有的监听

[[NSNotificationCenter defaultCenter] removeObserver:self];

使用通知应该注意的点:

1.分清主动方、被动方,主动方发送通知,被动注册接收通知,并实现通知方法
2.注意注册通知一定要在发送通知之前,否则接收不到通知
3.当注册监听通知的一方被销毁时,要移除监听的观察者
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容