zoukankan      html  css  js  c++  java
  • 通知中心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      复杂

  • 相关阅读:
    性能测试总结(一)测试流程
    WSDL入门
    Python中的while循环和for循环
    python中的变量
    吴恩达《机器学习》章节2单变量线性回归
    吴恩达《机器学习》章节1绪论:初识机器学习
    新式类多继承的查找顺序
    python2x和python3x的一些区别
    类方法和静态方法
    @property的使用
  • 原文地址:https://www.cnblogs.com/YouXianMing/p/3713121.html
Copyright © 2011-2022 走看看