OC-delegate委托机制

delegate介绍

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

OC-delegate委托机制_第1张图片
一张图解释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委托机制)