A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 你说呢 中级黑马   /  2015-8-13 18:20  /  378 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

通知的发布和监听

创建一个通知的发布者
NSNotificationSender  *sender1 = [[NSNotificationSender alloc] init];
创建一个通知的监听者
NSnotificationListener  *listener1 = [[NSNotificationListener alloc] init];

先获取NSNotificationCenter对象
NSNotificationCenter *notificationCenter = [NSNotificationCenter defaultCenter];

监听一个通知
参数1:要监听通知的对象
参数2:该对象的那个方法用来监听这个通知
参数3:被监听的通知的名称  
参数4:发布通知的对象
注意::
1.如果没有指定参数3(或者指定参数为nil),但是指定了参数4为sender1,那么表示凡是sender1对象发布的所有的通知m1方法都会坚挺的到
2.2.如果指定了参数3(指定要监听某个通知),但是没有指定参数4(nil),那么表示无论是那个对象发布的与定的通知名称相同的通知都会被监听得到。
3.如果参数3和参数4都是nil,那么所有对象发布的通知,这个方法都会被监听的到;

[notificationCenter addObserver;lisetner1 selector:@selector(m1:) name:@”name1” object :sender1];

让sender1对象发布一个通知
通过NSNotificationCenter 发布一个通知
参数1:通知名称
参数2:通知发布者(发布通知的对象)
参数3:通知的具体内容
[notificationCenter postNotificationName:@”name1” object:sender1 userInfo:@{@”ning0”:@”zhi”}];

监听到时调用类m1方法
销毁对象:::在listener1所在的类中设置dealloc
-(void)dealloc{[ [NSNotidicationCenter defaultCenter ]  removeObserver:self] ; }

-(void)m1:(NSNotification *)noteInfo
{
noteInfo中有name 和发布的对象   内容
noteInfo.name表示监听到的通知的名称
noteInfo.object 监听到的通知是那个对象发布的
noteInfo.userInfo 这是个字典,字典中就含有通知的具体内容
}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马