通知中心NSNotificationCenter的使用

通知中心NSNotificationCenter的使用

Cocoa框架中,通知中心以及KVO都属于设计模式中的观察者.

 

Source

在使用通知中心之前,对通知中心类进行了简单的封装,以便可读性更强.

NotificationCenter.h + NotificationCenter.m

通知中心发送消息的核心为,发送消息需要一唯一标示符flag来确认接受消息的对象.通知中心只是中介,它起着发送消息的作用.

我们来给一个model对象注册通知中心,在这个对象初始化的时候就注册,这个对象在销毁的时候就移除.

 

Usage

以下是使用情况以及相应的打印信息.

用起来是不是很简单呢:).

 

Compare

通知中心与KVO的区别:

1. 发送机制的区别

通知中心自身就是中介者,两个对象之间的通信通过中介者这个桥梁来发送信息.发送方不需要注册任何的信息,所有的配置都由注册方控制.

KVO是两个对象之间直接进行通信,发送通知信息的一方(对象)的注册键值发生变化的时候,会发送信息给被通知方.发送方主动添加被发送方注册信息,被发送方还需要实现一个方法,两方之间都需要进行些配置,使用稍有不当就会导致崩溃.

通知中心 3者间的关系

KVO      2者间的关系

 

2. 使用的细节

KVO属于被动发送消息,发送消息方的值改变了(一般都是被动改变的),才会发送信息给被发送方,通知中心属于主动发送消息.

通知中心 主动

KVO      被动

 

3. 使用难易程度

通知中心简单暴力直白,KVO用着恶心,但恶心不代表不要用哦.

通知中心 简单

KVO      复杂

时间: 2024-08-30 23:02:38

通知中心NSNotificationCenter的使用的相关文章

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

IOS中通知中心NSNotificationCenter应用总结 一.了解几个相关的类 1.NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量. 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象. @property (readonly, copy) NSString *name; 这个成员变量定义一个对象,可以理解为针对某一个对象的消息. @property (readonly, retain) id object; 这个成员变量是一个字典,可以用其来进行传值

改善系统的通知中心

改善系统的通知中心 iOS中的通知中心的实现实现机制是设计模式中的观察者. 在不进行任何修改的情况下,通知中心是这么使用的. // // NormalViewController.m // NotificationCenter // // Copyright (c) 2014年 Y.X. All rights reserved. // #import "NormalViewController.h" @interface NormalViewController () @end @im

iOS通知中心

iOS开发中的传送消息机制总的来说细分为三大类: 本地通知 推送通知 通知中心 三者之间并没有什么直接性质的联系,通知中心是向应用程序中注册某个观察者的所有对象广播消息,通过通知中心可以很好的协调不同对象之间的消息通信. 注意: 每一个应用程序都有且只有一个通知中心(NSNotificationCenter)实例 代理和通知中心都是协调各个对象之间进行消息通信,通知中心在功能上与代理有些类似,二者在选择时有什么区分? 代理对应的关系的一对一的关系,而通知是一对多的关系,所以在遇到需要一处改变引起

简化通知中心的使用

简化通知中心的使用     说明 1. 简化通知中心,笔者曾经实现过不需要移除的通知中心,基于弱引用集合(相对于强引用集合如NSArray,NSDictionary等)编写,本例子并无太多新意 2. 简化的通知中心由一个对象组织控制,不需要你手动移除被监听的对象,这是唯一的一点点有新意的地方 3. 在处理接收通知对象的地方,笔者提供了一个方法来简化取值操作,相对应的,发送通知消息的时候,被发送的对象也请使用指定的格式(都是用weak修饰,无需担心被持有)   源码 https://github.

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

本文是我的 WWDC 2014 笔记 中的一篇,涉及的 Session 有 Creating Extensions for iOS and OS X, Part 1 Creating Extensions for iOS and OS X, Part 2 总览 扩展 (Extension) 是 iOS 8 和 OSX 10.10 加入的一个非常大的功能点,开发者可以通过系统提供给我们的扩展接入点 (Extension point) 来为系统特定的服务提供某些附加的功能.对于 iOS 来说,可以使

永久关闭win10通知中心的通知消息方法

  永久关闭win10通知中心的通知消息方法来啦~很多升级为win10 9926的用户对于通知中心的通知消息不断弹出很是反感,想要关闭要怎么操作呢?下文小编就为大家带来永久关闭win10通知中心消息的方法,有需要的朋友一起去看下吧. Win10预览版9926的通知中心是Windows的新功能,用户可以通过这个应用了解Windows设置的改变以及知晓新闻资讯等.不过有的用户可能不喜欢或者不需要弹出通知,但又不想禁用通知中心,那就需要单独关闭弹出的通知消息. 当然,可以通过右键单击通知中心,然后选择

Chrome 28 Beta版增加独立通知中心

  距离Chrome 27的稳定版本发布才两天时间,谷歌马不停蹄,继续宣布了Windows.Mac和Linux版本的Chrome 28 Beta的推出.该版本最引人注目的是独立通知中心功能的加入,众所周知,目前只有Windows版本才具有此功能. 谷歌方称:"我们将这些通知设计得既有花瓶的迷人外表,又有内在的实用性."来自app的通知以及扩展功能可以转化为文本显示或者图片的格式,还会在弹出窗口里直接包含一些动作功能. 这里给出一个例子,如下图所示: Chrome和Chrome操作系统同

MAC OS X 10.8如何重启通知中心

  MAC OS X 10.8系统中通知中心有时会出现无法访问.停止更新等问题,为了解决这些问题,重启通知中心是一个很好的方法.下面就和小编一起来看看具体的操作方法吧. 解决方法: 1. 通过右上方Spotlight搜索[活动监视器]并打开 2. 在[活动监视器]右上方搜索条中搜索"通知中心" 3. 选中搜索到的这个进程,然后点左芳芳红色"退出进程" 这样通知中心便会自动重启了,一般遇到的错乱问题也会随之解决. 以上就是解决通知中心重启的方法了,有遇到通知中心出现无

MAC OS X 10.8通知中心无法访问、停止更新怎么重启

  MAC OS X 10.8系统中通知中心有时会出现无法访问.停止更新等问题,为了解决这些问题,重启通知中心是一个很好的方法.下面就和小编一起来看看具体的操作方法吧. 解决方法: 1. 通过右上方Spotlight搜索[活动监视器]并打开 2. 在[活动监视器]右上方搜索条中搜索"通知中心" 3. 选中搜索到的这个进程,然后点左芳芳红色"退出进程" 这样通知中心便会自动重启了,一般遇到的错乱问题也会随之解决. 以上就是解决通知中心重启的方法了,有遇到通知中心出现无