zoukankan      html  css  js  c++  java
  • delegate、notification、KVO场景差别

    delegate:

    编译器会给出没有实现代理方法的警告

    一对一

    使用weak而不是assign,或者vc消失时置为nil

    可以传递参数,还可以接收返回值

    notification:

    编译期无法排错

    一对多

    恰当时候需要移除注册,否则多次add会造成多次收到消息

    可以传递参数,但无返回值、

    KVO:

    简单的实现两对象间的信息同步

    能够对非我们创建的对象,即内部对象的状态改变作出响应,而且不需要改变内部对象(SKD对象)的实现

    能够提供观察的属性的最新值以及先前值;

    用key paths来观察属性,因此也可以观察嵌套对象

    完成了对观察对象的抽象,因为不需要额外的代码来允许观察值能够被观察

    我们观察的属性必须使用strings来定义。因此在编译器不会出现警告以及检查

    对属性重构将导致我们的观察代码不再可用;

    复杂的“IF”语句要求对象正在观察多个值。这是因为所有的观察代码通过一个方法来指向;

    当释放观察者时不需要移除观察者。

  • 相关阅读:
    yum 源配置
    RHCE学习笔记 管理1 (第六章 第七章)
    阿里云ecs(phpstudy一件包)
    PHP第三方登录 -- 微博登录
    php 实现qq第三方登录
    Linux 搭建svn服务器
    Linux vi编辑器的基本命令
    Mysql 导出导入
    svn服务配置和日常维护命令
    Eclipse导入idea 项目
  • 原文地址:https://www.cnblogs.com/lihaiyin/p/4666982.html
Copyright © 2011-2022 走看看