通知

通知(广播)

可以一对多的发送通知(一个发送者 多个观察者)

特别注意:在发送者 发送通知的时候,必须有观察者

发送者,就是注册一个通知中心,以他为中心,发送消息

通过通知的名字,来判断是哪个通知

例子:老师通知男学生和女学生来开班会。

分析:老师是一个发送中心,则学生需要注意老师的发送的消息,他们为观察者

在老师的类里

//建一个通知中心

-(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—设计模式-通知的使用的更多相关文章

  1. OC 观察者模式(通知中心,KVO)

    OC 观察者模式(通知中心,KVO) 什么是观察者模式??? A对B的变化感兴趣,就注册为B的观察者,当B发生变化时通知A,告知B发生了变化.这就是观察者模式. 观察者模式定义了一种一对多的依赖关系, ...

  2. oc调javascript方法(evaluateJavaScript:)&&js给oc发通知

    在ios8中引入了WKWebView控件,通过在头文件引用 #import <WebKit/WebKit.h>来使用该控件, 这个控件与oc的原生控件uiwebview很相似,它更方便oc ...

  3. OC 设计模式

    设计模式 一种或几种被所有程序员广泛认同的,有某些特定功能,或者实现某些特殊作用的编码格式 单例模式 键值编码(KVC) 键值观察(KVO) 观察者模式() 工厂模式(工厂方法) ps:MVC &am ...

  4. iOS 趣谈设计模式——通知

    [前言介绍] iOS的一种设计模式,观察者Observer模式(也叫发布/订阅,即Publich/Subscribe模式). 观察者模式,包含了通知机制(notification)和KVO(Key-v ...

  5. OC 设计模式——单例模式

    单例模式的作用:可以保证在程序运行过程,一个类只有一个实例,而且这个实例易于供外界访问.永远只分配一次内存给这个类.由于在调用alloc方法的时候,都会调用allocWithZone,所以要重写这个方 ...

  6. UI入门指引

    1. iOS学习路线: C语言:数据类型.流程控制.函数.指针.字符串.结构体.枚举.预处理: OC:面向对象.内存管理.分类.协议.Block.KVC/KVO.Foundation框架: iOS基础 ...

  7. [转载]iOS面试题总

    转载自:http://blog.sina.com.cn/s/blog_67eb608b0101r6xb.html (2014-06-13 20:23:33) 转载▼ 标签: 转载   crash 原文 ...

  8. iOS 面试题 2

    1.         描述应用程序的启动顺序. 1.程序入口main函数创建UIApplication实例和UIApplication代理实例 2.在UIApplication代理实例中重写启动方法, ...

  9. UIButton 文档翻译(持续更新)

    UIButton 文档翻译 继承 UIControl; UIView; UIResponder; NSObject 协议 UIFocusEnvironment,UIAppearanceContaine ...

随机推荐

  1. 【转】apache与tomcat的区别

    Apache 和 Tomcat 都是web网络服务器,两者既有联系又有区别,在进行HTML.PHP.JSP.Perl等开发过程中,需要准确掌握其各自特点,选择最佳的服务器配置. Apache是web服 ...

  2. Python编程小记

    发现这种结构很实用: while True: expression .... if condition: expression break 好吧,我承认我是菜鸟-

  3. codeforce Error Correct System

    题目大意: 给出两串n(1 ≤ n ≤ 200 000)个字母的字符串, 求出最多交换一对数, 使得不相同对数变少,求出不相同的对数以及交换的数的位置,若不需交换则输出-1,-1. 分析: 用矩阵记录 ...

  4. 文件系统层次标准FHS的详细介绍

    Filesystem Hierarchy Standard (文件系统层次标准,FHS)标准依据文件系统使用的频繁与否与是否允讲使用者随意更动, 而将目录定义成四种交互作用的形态,具体如下: 可分享的 ...

  5. abap程序修改程序

    *&———————————————————————**& Report ZHELI_CODE*&*&———————————————————————**&*&am ...

  6. static讲解

    static表示"全局"或者"静态"的意思,用来修饰成员变量和成员方法,也可以形成静态static代码块,但是Java语言中没有全局变量的概念.  被stati ...

  7. 全国信息学奥林匹克联赛(NOIP2014)复赛 模拟题Day2 长乐一中

    题目名称 改造二叉树 数字对 交换 英文名称 binary pair swap 输入文件名 binary.in pair.in swap.in 输出文件名 binary.out pair.out sw ...

  8. linux下遍历目录(转-在于思考)

    遍历目录的主要思想 由于目录就是一颗树,所以遍历目录就转换为遍历一棵树.谈到树的遍历就再熟悉不过了,有树的前序.层次和后序遍历,我使用的是前序遍历,后序遍历和前序遍历本质上一样,而层次遍历要比前两个麻 ...

  9. 在线音乐API的研究 (Part 2.1)

    本文转载于:http://www.cnblogs.com/osmondy/p/LyricApi.html 最近,在优化一个自己写的音乐播放器.主要目的是回顾.归纳,并希望能够写出一个属于自己的comm ...

  10. jQuery序列化后的表单值转换成Json

    $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() ...