NSNotificationCenter

在这里第一步和第二步的顺序可以互换,一般楼主我喜欢先在需要发送消息的页面发送消息,然后再在需要监听的页面注册监听。要注意的是不管是通知中心还是KVO都需要在页面销毁之前移除监听。

  1. 注册观察者
/***      观察者注册消息通知**      @param addObserver 观察者  self**      @param selector 回调方法  notification**      @param name 消息的名称  notifitionMassage**      @param object 发送消息的对象,表示接收哪个发送者的通知,如果第四个参数为nil,则接收所有发送者的通知。*/[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(notification:)name:@"notifitionMassage" object:nil];
复制代码
  1. 发送消息通知
/***      发送消息通知**      @param postNotificationName 发送消息的名称  notifitionMassage 这里一定要和观察者中消息的名称一致,否则监测不到消息**      @param object 发送消息的对象  如果这里填nil,而且观察者要监测同时监测了好几个消息,但是这里我们只需要这一条特定的消息的时候,此时就无法达到我们想要的*                    结果了。*/[[NSNotificationCenter defaultCenter]postNotificationName:@"notifitionMassage" object:nil];
复制代码
  1. 观察者处理消息(这个方法也就是观察者的回调方法)
/***      观察者处理消息(这个方法也就是观察者的回调方法)**      @param massage 接收到消息的信息,主要用于传值。(里面包含了Name:消息的名称 object:消息的发送者 userInfo:消息传递的数据信息)*/
-(void)notification:(NSNotification *)massage{
//在这里做我们想要的操作
}
复制代码
  1. 注销观察者

a. 最好的办法就是在注册观察者的页面的dealloc方法中去移除观察者

-(void)dealloc{/***      移除观察者的方法**      @param removeObserver 监听的对象  self**      @param name  消息的名称**      @param object 发送消息的对象  如果发送消息的时候填写了对象,那么这里就是那个对象*/
[[NSNotificationCenter defaultCenter]removeObserver:self];
}
复制代码

b. 单个移除

[[NSNotificationCenter defaultCenter]removeObserver:self name:@"notifitionMassage" object:nil];
复制代码
复制代码

转载于:https://juejin.im/post/5c1a0df85188257c1260f6cd

iOS 通知中心(NSNotificationCenter)相关推荐

  1. IOS中通知中心(NSNotificationCenter)的使用总结

    IOS中通知中心NSNotificationCenter应用总结 一.了解几个相关的类 1.NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量. 这个成员变量是这个消息对象 ...

  2. iOS开发之通知中心(NSNotificationCenter)

    前言 面向对象的设计思想是把行为方法封装到每一个对象中,以用来增加代码的复用性.正是这种分散封装,增加了对象之间的相互关联,总是有很多的对象需要彼此了解以及相互操作! 一个简单示例说明这种交互产生的对 ...

  3. 通知中心NSNotificationCenter的使用

    通知中心NSNotificationCenter的使用 Cocoa框架中,通知中心以及KVO都属于设计模式中的观察者. Source 在使用通知中心之前,对通知中心类进行了简单的封装,以便可读性更强. ...

  4. WWDC 2014 Session笔记 - iOS 通知中心扩展制作入门

    转自:http://onevcat.com/2014/08/notification-today-widget/ 总览 扩展 (Extension) 是 iOS 8 和 OSX 10.10 加入的一个 ...

  5. iOS 通知中心扩展制作入门

    from:http://onevcat.com/2014/08/notification-today-widget/ 扩展 (Extension) 是 iOS 8 和 OSX 10.10 加入的一个非 ...

  6. iOS开发--iOS通知中心扩展制作入门(iOS Extensions)

    个人笔记: 通知中心扩展,相当于一个特殊的独立的App存在.他和主App之间通讯可以通过OpenURL来实现.而在通知中心内部,像App一样,该咋样还是咋样(如异步网络请求, 自动布局等).  之所以 ...

  7. 通知中心 NSNotificationCenter 的简单使用方法

    NSNotificationCenter(通知中心)   [注意]需再dealloc中移除观察者   获取通知中心单例对象 NSNotificationCenter *center=[NSNotifi ...

  8. mac android通知中心,少数派一周快读:iOS 8 输入法大比拼,升级 Mac 新系统的 6 项准备,如何保持 Android 通知栏整洁...

    又到少数派一周快读的时间,上周我们迎来了苹果与谷歌两大豪门的新品发布,看来未来的移动互联网市场上两强相争的局面将会持续下去.新系统新特性即将上线,我们也一起来盘点一下上周最热和最值得推荐的内容吧. 上 ...

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

    什么是观察者模式??? A对B的变化感兴趣,就注册为B的观察者,当B发生变化时通知A,告知B发生了变化.这就是观察者模式. 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象 ...

最新文章

  1. 11-Python基础之模块
  2. Spring contextLoaderListener源码学习
  3. JavaEE重新审视设计模式:装饰器
  4. Spring Boot源码:SpringBootExceptionReporter
  5. 成为java架构师需要具备那些技能?
  6. 素数环(nyoj488)
  7. QT4 designer的使用 QT国际化
  8. 刀剑神域服务器维护到什么时候,刀剑神域黑衣剑士王牌维护结束时间 服务器维护进不去怎么办...
  9. PY++ 自动将你的C++程序接口封装供python调用
  10. 转载 三极管饱和及深度饱和状态的理解和判断!!
  11. cell flash cache 的使用
  12. 51单片机开发板介绍
  13. 解决spring-data-jpa 级联添加时,主表放弃对外键维护时外键字段为null
  14. android如何虚标内存,答疑 | 手机运存明明是6GB,但实际可用才3.5GB?是虚标还是什么?...
  15. linux rapidsvn 使用教程,推荐一款简单方便的SVN客户端,在百度BAE中使用RapidSVN,百度BAE SVN教程...
  16. sql语句中的子查询
  17. C#面向对象程序设计课程实验二: 实验名称:Windows 窗体程序
  18. 记忆化搜索 day48
  19. 合天 第四周 Check your source code
  20. (操作系统题目题型总结)第一章:操作系统概论

热门文章

  1. 现代游戏中的UX趋势
  2. 面试官问:跨域请求如何携带cookie?
  3. bupt summer training for 16 #8 ——字符串处理
  4. oracle的环境配置-基本配置
  5. JSP PO VO BO DTO POJO DAO解释
  6. Java基础 Day04(个人复习整理)
  7. Python——逻辑运算(or,and)
  8. Oracle-逻辑体系结构
  9. 8 旋转数组的最小数字
  10. SCAU 算法课的题