美文网首页
无标题文章

无标题文章

作者: HAPPY小元宝 | 来源:发表于2016-01-03 00:01 被阅读13次

    block的反向传值

    1. 调用方:准备块代码

    跟“代理”来对比 - 类似于协议方法的实现

    不同点:块代码都在一起,并没有单独的实现一个方法。

    2. 被调用方:执行块代码

    1> 要执行的代码,在 .h中定义一个块代码的属性,又被称作“回调方法”

    2> 在需要的时候执行块代码



    代理方法:

    1. 调用方(代理)

    1>遵守协议

    2>设置代理,让委托方知道代理是谁

    3>实现协议方法    -  类似给代码块传值

    2. 被调用方(委托)

    1>定义协议方法目的

     - 委托方知道让代理执行什么方法

     - 代理方知道实现什么方法

    2>定义一个弱引用的delegate属性,跟代理建立联系

    3>在需要的时候,通知代理执行协议方法

      - 定义一个块代码属性,便于调用方传递数值

      - 在需要的时候执行

    Block在反向传值上有什么特点?

     - 简单

     - 所有代码都在一起,便于阅读,便于维护

    block  &  delegate 如何选择?

    - 如果回调方法比较少,1~2,最好不要超过3个,这个时候使用Block比较合适。

    - 如果回调方法太多,会让代码显得臃肿,反而不好维护。

    - 如果回调方法非常多,同时又不用每一个方法都必须实现,这个时候用delegate会比较方便。

    相关文章

      网友评论

          本文标题:无标题文章

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