OC—设计模式-通知的使用
通知
通知(广播)
可以一对多的发送通知(一个发送者 多个观察者)
特别注意:在发送者 发送通知的时候,必须有观察者
发送者,就是注册一个通知中心,以他为中心,发送消息
通过通知的名字,来判断是哪个通知
例子:老师通知男学生和女学生来开班会。
分析:老师是一个发送中心,则学生需要注意老师的发送的消息,他们为观察者
在老师的类里
//建一个通知中心
-(void)speak{
[[NSNotificationCenter defaultCenter]postNotificationName:@"老师的通知" object:nil userInfo:@{@“content":@"全班同学注意了,今天要开班会"}];
}
在男学生的里
需要定义两个方法:一个方法是接收到老师的消息,第二个方法是对老师的消息做出判断
-(void)study{
[ [ NSNotificationCenter defaultCenter]addObserver:self selector:@selector(jianCha) name:@"老师的通知" object:nil];
}
//在自己的类里使用,就不用声明了
-(void)jianCha{
NSLog(@“我们要叫检查了。。”);
}
//最后移除观察者
-(void)dealloc{
[ [ NSNotificationCenter defaultCenter] removeObserver : self];
}
在女学生的类里
//接收消息
-(void)note{
[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(banHui : ) name:@"老师的通知" object:nil];
}
//NSNotification 包含了通知里面的所有内容
//这里有一个传值
-(void)banHui:(NSNotification *)message{
NSLog(@"听老师说%@",message.userInfo[@"content"]);
}
//移除观察者
-(void)dealloc{
[[NSNotificationCenter defaultCenter]removeObserver:self];
}
最后在主文件里实现

OC—设计模式-通知的使用的更多相关文章
- OC 观察者模式(通知中心,KVO)
OC 观察者模式(通知中心,KVO) 什么是观察者模式??? A对B的变化感兴趣,就注册为B的观察者,当B发生变化时通知A,告知B发生了变化.这就是观察者模式. 观察者模式定义了一种一对多的依赖关系, ...
- oc调javascript方法(evaluateJavaScript:)&&js给oc发通知
在ios8中引入了WKWebView控件,通过在头文件引用 #import <WebKit/WebKit.h>来使用该控件, 这个控件与oc的原生控件uiwebview很相似,它更方便oc ...
- OC 设计模式
设计模式 一种或几种被所有程序员广泛认同的,有某些特定功能,或者实现某些特殊作用的编码格式 单例模式 键值编码(KVC) 键值观察(KVO) 观察者模式() 工厂模式(工厂方法) ps:MVC &am ...
- iOS 趣谈设计模式——通知
[前言介绍] iOS的一种设计模式,观察者Observer模式(也叫发布/订阅,即Publich/Subscribe模式). 观察者模式,包含了通知机制(notification)和KVO(Key-v ...
- OC 设计模式——单例模式
单例模式的作用:可以保证在程序运行过程,一个类只有一个实例,而且这个实例易于供外界访问.永远只分配一次内存给这个类.由于在调用alloc方法的时候,都会调用allocWithZone,所以要重写这个方 ...
- UI入门指引
1. iOS学习路线: C语言:数据类型.流程控制.函数.指针.字符串.结构体.枚举.预处理: OC:面向对象.内存管理.分类.协议.Block.KVC/KVO.Foundation框架: iOS基础 ...
- [转载]iOS面试题总
转载自:http://blog.sina.com.cn/s/blog_67eb608b0101r6xb.html (2014-06-13 20:23:33) 转载▼ 标签: 转载 crash 原文 ...
- iOS 面试题 2
1. 描述应用程序的启动顺序. 1.程序入口main函数创建UIApplication实例和UIApplication代理实例 2.在UIApplication代理实例中重写启动方法, ...
- UIButton 文档翻译(持续更新)
UIButton 文档翻译 继承 UIControl; UIView; UIResponder; NSObject 协议 UIFocusEnvironment,UIAppearanceContaine ...
随机推荐
- 去除reads中的pcr 重复,fastquniq
改编: python ~/tools2assemble/run_fastuniq.py SHT-3K-1_1.fq.gz SHT-3K-1_2.fq.gz 好像不支持gz文件,要先解压 http:// ...
- 用python matplotlib 画图
state-machine environment object-oriente interface figure and axes backend and frontend user interfa ...
- ANTLR3完全参考指南读书笔记[08]
前言 不要让用户被那些“专业术语”吓住! 用心设计的提示和反馈信息是软件设计者的“职业良心”. 内容 1 存在哪些错误? 2 美化错误提示 3 错误恢复策略 1 存在哪些错误? 在DSL语言开 ...
- db2 存储过程 语法 及结果集查询
第一次用存储过程,关于处理待办的,不知道怎么执行和传参数 给存储过程 ,其实就一句话很简单. @call PRC_MISSIONLIST_QUERY('27020214', '27040000', ' ...
- yii2构造方法
控制器文件下面建 一公共控制器:: CommonController.php 里面写一个空方法 : public function init(){} 然后在你要写构造函数的控制器类里写一个方法 ( ...
- 2016CCPC东北地区大学生程序设计竞赛1008/HDU 5929 模拟
Basic Data Structure Time Limit: 7000/3500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Oth ...
- css透明度的设置 (兼容所有浏览器)
一句话搞定透明背景! .transparent_class { filter:alpha(opacity=); -moz-opacity:0.5; -khtml-opacity: 0.5; opaci ...
- C++ Primer : 第十二章 : 动态内存之shared_ptr与new的结合使用、智能指针异常
shared_ptr和new结合使用 一个shared_ptr默认初始化为一个空指针.我们也可以使用new返回的指针来初始化一个shared_ptr: shared_ptr<double> ...
- Spring MVC数组绑定
需求:商品批量删除,用户在页面选择多个商品,批量删除. 关键:将页面选择(多选)的商品id,传到controller方法的形参,方法形参使用数组接收页面请求的多个商品id // 批量删除 商品信息 @ ...
- SQLServer如何用T—SQL命令查询一个数据库中有哪些表
1.查询SQL中的所有表: Select TABLE_NAME FROM 数据库名称.INFORMATION_SCHEMA.TABLES Where TABLE_TYPE='BASE TABLE' 执 ...