zoukankan      html  css  js  c++  java
  • iOS通知的使用

    注册:[[NSNotificationCenter defaultCenter] postNotificationName:@"changeColor" object:self];

    接收处观察  : [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(changeColor) name:@"changeColor" object:nil];

    addObserver处remove掉观察者:

    - (void)dealloc
    {
        [[NSNotificationCenter defaultCenter]removeObserver:self];
    }

    通知是iOS中典型的观察者模式。

    1.iOS中的观察者模式:通知,KVO;

    2.通知和代理的区别:

     个人觉得,通知是观察者模式,代理是代理模式,所以通知和代理的区别就在于两种模式的区别。

    ①观察者模式是一对多,多用于不明确观察者时;代理模式是一对一,明确知道把something代理给谁;

    通知中心实际上是在程序内部提供了消息广播的一种机制。通知中心不能在进程间进行通信。实际上就是一个二传手,把接收到的消息,根据内 部的一个消息转发表,来将消息转发给需要的对象。通知中心是基于观察者模式的,它允许注册、删除观察者。
    一个NSNotificationCenter可以有许多的通知消息NSNotification,对于每一个NSNotification可以有很多的观察者Observer来接收通知。

    委托代理(degegate),顾名思义,把某个对象要做的事情委托给别的对象去做。那么别的对象就是这个对象的代理,代替它来打理要做 的事。反映到程序中,首先要明确一个对象的委托方是哪个对象,委托所做的内容是什么。

    如果通知过多,会造成通知的管理复杂,如果管理不好,你会接收到莫名其妙的消息,而无法追踪。

     
    原创文章,转载请声明出处!
  • 相关阅读:
    visual studio code for mac 的对齐快捷键
    ios 抓取真机的网络包
    iOS 引入framework的常见问题和原理
    iOS 4种开发者身份的官方说明
    iOS NSObject 的 isa 属性的类型 Class
    iOS 子类初始化方法中 为什么要使用 self = [super init] 对self进行赋值
    Linux和windows下修改tomcat内存
    idea将项目打成war包
    web.xml引入 xml (tomcat 7.0.52) 以上版本报错
    ideal 切换git和svn
  • 原文地址:https://www.cnblogs.com/renlipeng/p/4558786.html
Copyright © 2011-2022 走看看