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

    文章版权归个人所有,转载时请在文章显眼位置给出本文链接。
  • 相关阅读:
    图论分类讨论 bzoj2503相框
    高精+卡特兰数 bzoj3907网格
    树状数组 [Usaco2010 Nov]Cow Photographs
    二分图+贪心优化 [2009国家集训队]最大收益
    UINavigationItem表示UINavigationBar中的控件
    游历的路线
    2019.9.4 清点人数
    [国家集训队]矩阵乘法
    POJ 1113 Wall 凸包 裸
    POJ 1556 The Doors 线段交 dijkstra
  • 原文地址:https://www.cnblogs.com/xjshi/p/4353888.html
Copyright © 2011-2022 走看看