OC-delegate委托机制

作者: 我是花草阿 | 来源:发表于2017-04-26 21:28 被阅读654次

delegate介绍

delegation委托其实也是一种架构设计模式,主要是由一个委托对象委托给另一个对象去做它的工作。这里面需要用protocol协议实现,协议有requested必要方法,和option可选方法两种,协议提供编程接口,给调用者实现协议中的方法。

一张图解释delegate

使用delegation的场景:

实现不同页面间的数据交互,可以用在页面跳转,界面传值,跳转页面刷新数据以及监听事件等等,当delegate的事件触发时,delegate才会被调用。

使用delegation的通用步骤:

  1. 首先要创建一个delegate对象,使用protocol协议定义需要委托的方法接口
  2. 然后委托者要在自身文件里要声明一个delegate对象
  3. 委托者回调delegate的协议方法(自身调用自身)
  4. 设置被委托者的delegate,用来被委托者调用协议方法(即delegate内的方法)
  5. 最后被委托者要实现delegate的协议方法,实现 delegate

使用delegate的几个注意点:

  • 声明的delegate对象的属性要使用weak,用来防止循环引用,因为对象的delegate持有对象本身。
  • 要检查@option方法有没有实现,使用respondToselector:
  • 命名最好以delegate的类名开头,然后加上should,will,did
    (委托方法通常包括3种动词:should、will、did
    should表示一个动作发生前,通常带有返回值,可以在动作发生之前改变对象状态。
    will在动作发生前,委托可以对动作做出响应,但不带有返回值。
    did在动作发生后做出的响应。)

相关文章

  • OC-delegate委托机制

    delegate介绍 delegation委托其实也是一种架构设计模式,主要是由一个委托对象委托给另一个对象去做它...

  • 【JAVA】京东一面

    1、类加载机制概念、加载步骤、双亲委托机制、全盘委托机制、类加载器种类及继承关系 2、如何实现让类加载器去加载网络...

  • JVM之双亲委托机制

    JVM之双亲委托机制 前言: 想了解双亲委托机制,我们就得先了解他的ClassLoader(类加载)。不管是And...

  • 双亲委托机制

    ClassLoader 分类 启动类加载器:BoostrapClassLoader 开发者无法直接获取到启动类加载...

  • 总结.Net基础知识——献给即将入坑的同行们(二期)

    事件是不是一种委托? 委托是一种安全的函数指针,事件是一种消息机制 委托与事件是什么关系?为什么要使用委托 委托提...

  • 事件委托笔记

    事件委托原理:事件冒泡机制。 什么是事件委托: 事件委托——给父元素绑定事件,用来监听子元素的冒泡事件,并找到是哪...

  • 3.类加载器三双亲委托机制

    双亲委托机制 在双亲委托机制中,各个加载器按照父子关系形成了树形结构,除了根类加载器之外,其余的类加载器都有且只有...

  • 深入理解JVM(一)类加载器部分:双亲委派模型

    类加载器的父亲委托机制 在父亲委托机制中,各个类加载器按照父子关系形成了树形结构,除了根类加载器之外,其余的类加载...

  • JavaScript事件委托机制

    概念 事件委托是依靠事件冒泡,只需要指定一个事件处理程序,绑定一次就可以处理一类的事件。举个例子:假如有一个旅游团...

  • 由浅入深谈 Java 的类加载机制

    本文涉及知识点:双亲委托机制、BootstrapClassLoader、ExtClassLoader、AppCla...

网友评论

    本文标题:OC-delegate委托机制

    本文链接:https://www.haomeiwen.com/subject/qhxmzttx.html