iOS 通知中心(NSNotificationCenter)
NSNotificationCenter
在这里第一步和第二步的顺序可以互换,一般楼主我喜欢先在需要发送消息的页面发送消息,然后再在需要监听的页面注册监听。要注意的是不管是通知中心还是KVO都需要在页面销毁之前移除监听。
- 注册观察者
/*** 观察者注册消息通知** @param addObserver 观察者 self** @param selector 回调方法 notification** @param name 消息的名称 notifitionMassage** @param object 发送消息的对象,表示接收哪个发送者的通知,如果第四个参数为nil,则接收所有发送者的通知。*/[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(notification:)name:@"notifitionMassage" object:nil];
复制代码
- 发送消息通知
/*** 发送消息通知** @param postNotificationName 发送消息的名称 notifitionMassage 这里一定要和观察者中消息的名称一致,否则监测不到消息** @param object 发送消息的对象 如果这里填nil,而且观察者要监测同时监测了好几个消息,但是这里我们只需要这一条特定的消息的时候,此时就无法达到我们想要的* 结果了。*/[[NSNotificationCenter defaultCenter]postNotificationName:@"notifitionMassage" object:nil];
复制代码
- 观察者处理消息(这个方法也就是观察者的回调方法)
/*** 观察者处理消息(这个方法也就是观察者的回调方法)** @param massage 接收到消息的信息,主要用于传值。(里面包含了Name:消息的名称 object:消息的发送者 userInfo:消息传递的数据信息)*/
-(void)notification:(NSNotification *)massage{
//在这里做我们想要的操作
}
复制代码
- 注销观察者
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)相关推荐
- IOS中通知中心(NSNotificationCenter)的使用总结
IOS中通知中心NSNotificationCenter应用总结 一.了解几个相关的类 1.NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量. 这个成员变量是这个消息对象 ...
- iOS开发之通知中心(NSNotificationCenter)
前言 面向对象的设计思想是把行为方法封装到每一个对象中,以用来增加代码的复用性.正是这种分散封装,增加了对象之间的相互关联,总是有很多的对象需要彼此了解以及相互操作! 一个简单示例说明这种交互产生的对 ...
- 通知中心NSNotificationCenter的使用
通知中心NSNotificationCenter的使用 Cocoa框架中,通知中心以及KVO都属于设计模式中的观察者. Source 在使用通知中心之前,对通知中心类进行了简单的封装,以便可读性更强. ...
- WWDC 2014 Session笔记 - iOS 通知中心扩展制作入门
转自:http://onevcat.com/2014/08/notification-today-widget/ 总览 扩展 (Extension) 是 iOS 8 和 OSX 10.10 加入的一个 ...
- iOS 通知中心扩展制作入门
from:http://onevcat.com/2014/08/notification-today-widget/ 扩展 (Extension) 是 iOS 8 和 OSX 10.10 加入的一个非 ...
- iOS开发--iOS通知中心扩展制作入门(iOS Extensions)
个人笔记: 通知中心扩展,相当于一个特殊的独立的App存在.他和主App之间通讯可以通过OpenURL来实现.而在通知中心内部,像App一样,该咋样还是咋样(如异步网络请求, 自动布局等). 之所以 ...
- 通知中心 NSNotificationCenter 的简单使用方法
NSNotificationCenter(通知中心) [注意]需再dealloc中移除观察者 获取通知中心单例对象 NSNotificationCenter *center=[NSNotifi ...
- mac android通知中心,少数派一周快读:iOS 8 输入法大比拼,升级 Mac 新系统的 6 项准备,如何保持 Android 通知栏整洁...
又到少数派一周快读的时间,上周我们迎来了苹果与谷歌两大豪门的新品发布,看来未来的移动互联网市场上两强相争的局面将会持续下去.新系统新特性即将上线,我们也一起来盘点一下上周最热和最值得推荐的内容吧. 上 ...
- OC 观察者模式(通知中心,KVO)
什么是观察者模式??? A对B的变化感兴趣,就注册为B的观察者,当B发生变化时通知A,告知B发生了变化.这就是观察者模式. 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象 ...
最新文章
- 11-Python基础之模块
- Spring contextLoaderListener源码学习
- JavaEE重新审视设计模式:装饰器
- Spring Boot源码:SpringBootExceptionReporter
- 成为java架构师需要具备那些技能?
- 素数环(nyoj488)
- QT4 designer的使用 QT国际化
- 刀剑神域服务器维护到什么时候,刀剑神域黑衣剑士王牌维护结束时间 服务器维护进不去怎么办...
- PY++ 自动将你的C++程序接口封装供python调用
- 转载 三极管饱和及深度饱和状态的理解和判断!!
- cell flash cache 的使用
- 51单片机开发板介绍
- 解决spring-data-jpa 级联添加时,主表放弃对外键维护时外键字段为null
- android如何虚标内存,答疑 | 手机运存明明是6GB,但实际可用才3.5GB?是虚标还是什么?...
- linux rapidsvn 使用教程,推荐一款简单方便的SVN客户端,在百度BAE中使用RapidSVN,百度BAE SVN教程...
- sql语句中的子查询
- C#面向对象程序设计课程实验二: 实验名称:Windows 窗体程序
- 记忆化搜索 day48
- 合天 第四周 Check your source code
- (操作系统题目题型总结)第一章:操作系统概论