zoukankan      html  css  js  c++  java
  • 通知中心 NSNotificationCenter

    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这个通知)。这个字典存储任何关联的对象。通知中心对象是不可变的。

    文章版权归个人所有,转载时请在文章显眼位置给出本文链接。
  • 相关阅读:
    javascript清空数组的三种方法
    assigning to rvalue错误的原因与解决方法
    form表单提交的disabled属性踩坑记录(某个字段死活保存不上)
    java对两个字符串数组取交集、并集和差集
    vue2.x学习笔记(三十二)
    vue2.x学习笔记(三十)
    vue2.x学习笔记(二十九)
    vue2.x学习笔记(二十八)
    数据结构与算法之间的关系
    记一次解决CSS定位bug思路
  • 原文地址:https://www.cnblogs.com/xjshi/p/4353888.html
Copyright © 2011-2022 走看看