何时用Delegate和何时用Block?
2016-07-13 本文已影响308人
王欣12138
公共接口,方法较多也选择用delegate进行解耦
delegate的话,运行成本低,delegate只是保存了一个对象指针,直接回调,没有额外消耗
block出栈需要将使用的数据从栈内存拷贝到堆内存,当然对象的话就是加计数,使用完或者block置nil后才消除
iOS有很多例子比如最常用tableViewDelegate,textViewDelegate
异步和简单的回调用block更好
iOS有很多例子比如常用的网络库AFNetwork,ASIHTTP库,UIAlertView类。
都是为了在具体的实现Delegate或Block中再进行处理,属于策略模式,具体算法在具体算法类中实现。