NSNotificationCenter

通知中心提供了一种在程序内广播信息的途径,一个NSNotificationCenter对象本质上是一个通知分发表(notification dispatch table)。

每一个运行中的Cocoa程序有一个默认的通知中心,一般不用自己创建。一个NSNotificationCenter对象仅仅可以在一个单独的程序中传送通知,如果想要在不同进程中发送、接受通知,使用NSDistributedNotificationCenter的实例。

- (void)addObserver:(id)notificationObserver
selector:(SEL)notificationSelector
name:(NSString *)notificationName
object:(id)notificationSender

向接收者的分发表添加一条记录,后边两个参数可选。

notificationObserver 作为观察者,不能为nil;

notificationSelector sorry,翻译不清了。当接收者post通知时,观察者会执行这个参数指定的消息。

notificationName 用于注册观察者的通知的名字,也就是说,只有用这个名字的通知被投递给这个观察者。如果传入nil,通知中心不用通知的名字决定是否把它投递给观察者。

notificationSender 通俗的说,就是观察者愿意接收谁的通知。如果传入nil,通知中心不用通知的sender决定是否投递给观察者(shit,真绕,其实就是接收所有sender发送的通知,第三个参数也一样)。

注意:务必保证在观察者dealloc前,调用removeObserver:name:object:来移除观察者。

- (void)postNotification:(NSNotification *)notification

给接收者post一个给定的通知。参数notification不能为nil。

- (void)postNotificationName:(NSString *)notificationName
object:(id)notificationSender
userInfo:(NSDictionary *)userInfo

notificationSender post通知的对象;

userInfo 关于通知的信息,可以使nil。

NSNotification

NSNotification对象封装信息以便于NSNotificationCenter对象把它广播给其他对象。一个通知包含一个名字、一个对象和一个可选的字典。名字是用来识别通知的一个标识。这个对象是通知的poster想要发送给这个通知观察者的对象(一般,是这个对象post这个通知)。这个字典存储任何关联的对象。通知中心对象是不可变的。

通知中心 NSNotificationCenter的更多相关文章

  1. 通知中心NSNotificationCenter的使用

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

  2. iOS中通知中心NSNotificationCenter应用总结

    通知中心(NSNotificationCenter)实际是在程序内部提供了一种广播机制.把接收到的消息,根据内部的消息转发表,将消息转发给需要的对象.这句话其实已经很明显的告诉我们要如何使用通知了.第 ...

  3. iOS 通知中心 NSNotificationCenter

    iOS开发中,每个app都有一个通知中心,通知中心可以发送和接收通知. 在使用通知中心 NSNotificationCenter之前,先了解一下通知 NSNotification. NSNotific ...

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

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

  5. iOS基础 - 通知中心(NSNotificationCenter)

    通知中心(NSNotificationCenter) 每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信 任何一个对象都可以向通知中心发 ...

  6. IOS中通知中心(NSNotificationCenter)

    摘要 NSNotification是IOS中一个调度消息通知的类,采用单例模式设计,在程序中实现传值.回调等地方应用很广.   IOS中通知中心NSNotificationCenter应用总结 一.了 ...

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

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

  8. iOS中通知中心(NSNotificationCenter)的使用总结

    一.了解几个相关的类 1.NSNotification 这个类可以理解为一个消息对象,其中有三个成员变量. 这个成员变量是这个消息对象的唯一标识,用于辨别消息对象. @property (readon ...

  9. iOS 设计模式-NSNotificationCenter 通知中心

    通知介绍 每一个应用程序都有一个通知中心(NSNotificationCenter)实例,专门负责协助不同对象之间的消息通信 任何一个对象都可以向通知中心发布通知(NSNotification),描述 ...

随机推荐

  1. #define和const的简单区别

    面试常问:宏#define和const有什么区别? 1.编译器处理方式 define宏是在预处理阶段展开 const常量是在编译阶段使用 2.类型和安全检查不同 define宏没有类型,不做安全检查, ...

  2. Java学习----变量是什么

    1.变量必须拥有的类型 2.变量必须拥有的名字 变量:具备名字和类型的可以存放类型匹配的数据的量 public class Student { public static void main(Stri ...

  3. jquey复选框三级分类关联一二级分类

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Category_Manag ...

  4. php 数组 类对象 值传递 引用传递 区别

    一般的数据类型(int, float, bool)不做这方面的解说了 这里详细介绍一下数组和的类的对象作为参数进行值传递的区别 数组值传递 实例代码: <?php function main() ...

  5. Python列表和字典的方法总结

    列表方法: 方法 说明 append( item ) 在列表末尾插入(item ) count( element ) 返回element在列表中出现的次数 extend( newlist ) 将new ...

  6. 周赛D题

    D - D Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u   Description ...

  7. SCJP_104——题目分析(3)

    11. what is reserved words in java?A. run B. default C. implement D. import Java 中,给标识符取名的时候,不能使用关键字 ...

  8. Python异常的使用

    伪代码: try: 出错部分的代码...... except Exception as e: print '404网页' #Exception是所有错误类型的父类,包括所有出错信息 finally: ...

  9. ZooKeeper 应用场景

    ZooKeeper典型应用场景一览   数据发布与订阅(配置中心) 发布与订阅模型,即所谓的配置中心,顾名思义就是发布者将数据发布到ZK节点上,供订阅者动态获取数据,实现配置信息的集中式管理和动态更新 ...

  10. mysql一个表中多个字段对应另一个表的id如何查询?

    比如有如下2个表 a 和baaID b1ID b2ID b3ID1 1 3 52 2 4 6bbID bCon1 苹果2 香蕉3 国内4 国外5 出口6 进口其中a表中的b1ID,b2ID,b3ID都 ...