我是靠谱客的博主 笑点低盼望,最近开发中收集的这篇文章主要介绍ios 通知注销_iOS开发-消息通知机制(NSNotification和NSNotificationCenter),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

消息通知中重要的两个类:

(1)NSNotificationCenter: 实现NSNotificationCenter的原理是一个观察者模式,获得NSNotificationCenter的方法只有一种,那就是[NSNotificationCenter defaultCenter] ,通过调用静态方法defaultCenter就可以获取这个通知中心的对象了。NSNotificationCenter是一个单例模式,而这个通知中心的对象会一直存在于一个应用的生命周期。

(2) NSNotification: 这是消息携带的载体,通过它,可以把消息内容传递给观察者。

实战演练

1.通过NSNotificationCenter注册通知NSNotification,viewDidLoad中代码如下:

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

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

第一个参数是观察者为本身,第二个参数表示消息回调的方法,第三个消息通知的名字,第四个为nil表示表示接受所有发送者的消息~

回调方法:

-(void)notificationFirst:(NSNotification *)notification{

NSString *name=[notification name];

NSString *object=[notification object];

NSLog(@"名称:%@----对象:%@",name,object);

}

-(void)notificationSecond:(NSNotification *)notification{

NSString *name=[notification name];

NSString *object=[notification object];

NSDictionary *dict=[notification userInfo];

NSLog(@"名称:%@----对象:%@",name,object);

NSLog(@"获取的值:%@",[dict objectForKey:@"key"]);

}

2.消息传递给观察者:

[[NSNotificationCenter defaultCenter] postNotificationName:@"First" object:@"博客园-Fly_Elephant"];

NSDictionary *dict=[[NSDictionary alloc]initWithObjects:@[@"keso"] forKeys:@[@"key"]];

[[NSNotificationCenter defaultCenter] postNotificationName:@"Second" object:@"http://www.cnblogs.com/xiaofeixiang" userInfo:dict];

3.页面跳转:

-(void)pushController:(UIButton *)sender{

ViewController *customController=[[ViewController alloc]init];

[self.navigationController pushViewController:customController animated:YES];

}

4.销毁观察者

-(void)dealloc{

NSLog(@"观察者销毁了");

[[NSNotificationCenter defaultCenter] removeObserver:self];

}

也可以通过name单个删除:

[[NSNotificationCenter defaultCenter] removeObserver:self name:@"First" object:nil];

5.运行结果

2015-04-26 15:08:25.900 CustoAlterView[2169:148380] 观察者销毁了

2015-04-26 15:08:29.222 CustoAlterView[2169:148380] 名称:First----对象:博客园-Fly_Elephant

2015-04-26 15:08:29.222 CustoAlterView[2169:148380] 名称:Second----对象:http://www.cnblogs.com/xiaofeixiang

2015-04-26 15:08:29.223 CustoAlterView[2169:148380] 获取的值:keso

最后

以上就是笑点低盼望为你收集整理的ios 通知注销_iOS开发-消息通知机制(NSNotification和NSNotificationCenter)的全部内容,希望文章能够帮你解决ios 通知注销_iOS开发-消息通知机制(NSNotification和NSNotificationCenter)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(74)

评论列表共有 0 条评论

立即
投稿
返回
顶部