QF——iOS通知中心(NotificationCener)
前面我们讲iOS不同界面间传值的时候,说过可以通过通知中心进行传值。那到底什么是通知中心,他是如何实现传值的呢?
NSNotificationCenter是单例的,只提供了一个唯一的实例化入口,在整个应用内只存在一个实例 :
[NSNotificationCenter defaultCenter]
只要“关注”NSNotificationCenter的实例,就可以自动接收其他对象通过通知中心发的消息。因为它的关注者可以有很多个,所以它也就有了广播性质。
在通知中心里,消息发送者和接收者一无所知,完全解耦,这是极好的。
通知中心的本质是观察者模式,给某对象(NSNotificationCenter)注册观察,只要它发生了变化,就会触发回调方法。
使用通知中心的步骤:假设要从A传值到B
1.B先关注通知中心,也可以说给通知中心注册观察者B:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(urlChange:) name:@"newURL" object:nil];
2.A通过通知中心发送消息:
[[NSNotificationCenter defaultCenter] postNotificationName:@"newURL" object:nil userInfo:@{@"newSiteURL":value}];
3.因为B关注了通知中心,当通知中心有消息时,会触发回调方法,所以执行 - (void)urlChange:(NSNotification *)notification
注:NSNotification 是消息信息的携带体,通过notification.userInfo可以获得通知中心里的通知信息。
4.移除观察者:
重写析构函数dealloc,在里面移除观察者(对通知中心取消关注)
[[NSNotificationCenter defaultCenter] removeObserver:self];
QF——iOS通知中心(NotificationCener)的更多相关文章
- iOS通知中心
iOS通知中心 它是iOS程序内部的一种消息广播机制,通过它,可以实现无引用关系的对象之间的通信.通知中心他是基于观察者模式,它只能进行程序内部通信,不能跨应用程序进程通信. 当通知中心接受到消息后会 ...
- iOS通知中心升级 -可设置按优先级执行block
简单介绍下,这是需求驱动中发现iOS的NotificationCenter有很多功能无法实现,于是对其进行了一层包装.相当于手动管理观察者栈和监听者期望执行的事件,因此可以为其添加了很多新增的功能,将 ...
- iOS 通知中心 NSNotificationCenter
iOS开发中,每个app都有一个通知中心,通知中心可以发送和接收通知. 在使用通知中心 NSNotificationCenter之前,先了解一下通知 NSNotification. NSNotific ...
- iOS 通知中心扩展制作初步-b
涉及的 Session 有 Creating Extensions for iOS and OS X, Part 1 Creating Extensions for iOS and OS X, Par ...
- iOS监听模式系列之通知中心
补充--通知中心 对于很多初学者往往会把iOS中的本地通知.推送通知和iOS通知中心的概念弄混.其实二者之间并没有任何关系,事实上它们都不属于一个框架,前者属于UIKit框架,后者属于Foundati ...
- iOS开发之通知中心(NSNotificationCenter)
前言 面向对象的设计思想是把行为方法封装到每一个对象中,以用来增加代码的复用性.正是这种分散封装,增加了对象之间的相互关联,总是有很多的对象需要彼此了解以及相互操作! 一个简单示例说明这种交互产生的对 ...
- IOS回调机制——代理,通知中心以及Block
Xcode5.0正式版 IOS7和Xcode5正式版在昨天正式可以下载.IOS7不多说了,交互设计,界面风格,操作的简化程度都属于比较领先的水平. 这里来说说Xcode5正式版,和以前的Xcode5测 ...
- IOS Notification 通知中心
1. 通知中心概述 通知中心实际上是在程序内部提供了消息广播的一种机制.通知中心不能在进程间进行通信.实际上就是一个二传手,把接收到的消息,根据内部的一个消息转发表,来将消息转发给需要的对象. ...
- iOS生命周期 & 通知中心
笔记内容 学习笔记-段玉磊 Stanford course View Controller Lifecycle 这篇文是我记载Developing iOS 7 Apps公开课 第5课的笔记 UITex ...
随机推荐
- 警惕:利用Dropbox链接散播的恶意软件
趋势科技近期发现好几起利用热门文档代管服务Dropbox的垃圾邮件.邮件的内嵌链接会下载UPATRE恶意软件变种.UPATRE下面载恶意软件而恶名昭彰,当中包含ZBOT恶意软件.CryptoLocke ...
- C#运用实例.读取csv里面的词条,对每一个词条抓取百度百科相关资料,然后存取到数据库
第一步:首先需要将csv先装换成datatable,这样我们就容易进行对datatable进行遍历: /// 将CSV文件的数据读取到DataTable中 /// CSV文件路径 /// 返回读取了C ...
- 触碰jQuery:AJAX异步详解(转)
AJAX 全称 Asynchronous JavaScript and XML(异步的 JavaScript 和 XML).它并非一种新的技术,而是以下几种原有技术的结合体. 1) 使用CSS和X ...
- asp.net mvc ajax提交例子
@{ Layout = null; } <script src="../../Scripts/jquery-1.10.2.min.js" type="text/ja ...
- uilable 换行标记
m_tipLabel.lineBreakMode = UILineBreakModeWordWrap; m_tipLabel.numberOfLines = 0; m_tipLabel.text = ...
- UIButton 文档翻译(持续更新)
UIButton 文档翻译 继承 UIControl; UIView; UIResponder; NSObject 协议 UIFocusEnvironment,UIAppearanceContaine ...
- C# for循环①护栏长度 ②广场砖面积 ③判断闰年平年
// static void Main(string[] args) { const double PI = 3.14; const int BAR_U ...
- java多线程并发例子
public static void main(String[] args) { for(Thread t:getThreads()){ t.start(); } } public static Th ...
- HDU 1328 IBM Minus One
IBM Minus One Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tot ...
- 贝叶斯网络基础(Probabilistic Graphical Models)
本篇博客是Daphne Koller课程Probabilistic Graphical Models(PGM)的学习笔记. 概率图模型是一类用图形模式表达基于概率相关关系的模型的总称.概率图模型共分为 ...