block和delegate的选择

Posted huaida

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了block和delegate的选择相关的知识,希望对你有一定的参考价值。

block和delegate均为常用回调方式 (暂不讨论通知)
 
代理
优点:
  • 设置某个对象的代理,代理对象可以与被代理对象不直接相关,即使两个对象距离较远,传值也比较方便。
  • 代理方法内可以方便调用对象私有方法
缺点:
  • delegate比block使用繁琐,对于多个小控件的回调,delegate要写更多的代码。
  • delegate中一个方法处理一个逻辑,更清晰。多协议比多block更容易维护业务。

block
优点:
  • 调用简介易于使用
缺点:
  • block不宜多层嵌套,代码糅合在一起不易理解。
  • block的实现写在持有 「持有该block的对象」的类中,无法调用远距离类的私有方法
 
 
 
总结:delegate 用于偏向用于业务相关的回调 , block多用于功能类的回调 

以上是关于block和delegate的选择的主要内容,如果未能解决你的问题,请参考以下文章

ios block和delegate的区别

63.delegate回调 和block回调

block和delegate 通知区别

Delegate/Block/NSNotification与多线程

block 与delegate( weak/id)

NSNotification\KVO\block\delegate的区别和用法