zoukankan      html  css  js  c++  java
  • 7.iOS Notification

    1. 通知中心认识

        通知中心实际上是在程序内部提供了消息广播的一种机制。通知中心不能在进程间进行通信,它只能进行程序内部通信,不能跨应用程序进程通信。通知中心,当通知中心接受到消息后会根据设置,根据内部的一个消息转发表,将消息转发给订阅者。通知中心是基于观察者模式的,它允许注册、删除观察者。通知中心与代理模式类似,都可以实现多个对象间通信,通知中心可以将一个通知发送给多个监听者,而代理模式每个对象只能添加一个代理。但无论是那种模式,都是一种低耦合的设计,实现对象间的通信。

    2. 通知中心的使用

    第一步:注册通知中心(就是谁去接受广播)

    // 参数1 谁去就收广播的消息

    // 参数2 接收到广播后要执行的操作

    // 参数3 接受哪个广播(也是就广播的标识)

    [[NSNotificationCenter defaultCenter]  addObserver:self selector:@selector (runSel:) name:@"MCJ" object:nil];

    第二步:发送广播 这个方法一般在其他对像有什么变数时 在其他对象里写

    // 参数1 给广播添加标识(在接受广播的地方,可以通过这个值区分不同的广播)

    // 参数 2 需要传递的参数 没有的话可以传nil

    [NSNotificationCenter defaultCenter] postNotificationName:@" MCJ" object:array];

    第三步: 实现接收到广播后要执行的方法,如果有参数需要加上(NSNotification *)sender   

    sender.object 就是我们传过来的参数

    - (void)runSel: (NSNotification *)sender {

        NSArray *array =
    sender.object;
    
        _nameLable.text = array[0];

    _passwordLabel.text =
    array[1];
    
        self.view.backgroundColor
    = [UIColor redColor];
    }
    

    第四步:移除通知(有两种方式)

    - (void)dealloc {

    // 移除指定的通知中⼼心

        [[NSNotificationCenter
    defaultCenter]
    
    removeObserver:self
    name:@"MCJ" object:nil];
    

    // 移除所有的通知中⼼心

        [[NSNotificationCenter
    defaultCenter]
    
    removeObserver:self];
    }
    
  • 相关阅读:
    线段树套线段树
    hdu6800
    半平面交 poj1279
    Unity:创建了一个自定义的找子物体的脚本
    Unity:一个简单的开门动画
    hdu 4940
    hdu 4939
    hdu 4932
    hdu 4912
    AC自动机
  • 原文地址:https://www.cnblogs.com/mcj-coding/p/5115087.html
Copyright © 2011-2022 走看看