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委托机制

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