QF——iOS代理模式

iOS的代理模式:

  A要完成某个功能,它可以自己完成,但有时出于一些原因,不方便自己完成。这时A可以委托B来帮其完成此功能,即由B代理完成。但是这个功能不是让B随随便便任其完成。此时,会有一个协议文件,里面定义了完成该功能的方法规范。B得实现这个协议,严格按照协议里定的规范完成。这就是iOS代理模式的基本思想。

步骤:

  <1>定义一个协议:@protocal 。里面只声明方法,确定了该方法的规范(返回值和参数等)

  <2>给A添加代理属性。代理的类型必须是id<xxx> 。即为“实现了xxx协议的任何对象”。任意对象,只要你实现了xxx协议。

    @property  id<xxx> delegate 

  <3>使B类实现xxx协议,并实现协议里的方法。

  <4>在A里设置代理为b。self.delegate = b;

当A需要实现此功能时,应该先判断自己的属性_delegate是否已经了此方法,若实现了,调用就行了。

 

代理模式传值:

  在iOS里,代理模式有很多用处。比如可以用来在不同界面间传值,而且通常是用在把当前界面的值传给上一个界面。

  这篇博文总结地很好:点击

  

      

 

posted @ 2015-03-22 20:55  &王先生  阅读(170)  评论(0编辑  收藏  举报