美文网首页
谈谈Block和代理区别和联系

谈谈Block和代理区别和联系

作者: 晴天ccc | 来源:发表于2018-03-16 11:10 被阅读0次

代理和block的共同特性是回调机制

Block:

1 写法简练,不需要写protocol/函数等、

2 block注重结果的传输

3 代码比较统一

4 block出栈需要将使用的数据从栈内存拷贝到堆内存,当然对象的话就是加计数,使用完或者block置nil后才消除;

Delegate

1 delegate运行成本低,只是保存了一个对象指针,直接回调,没有额外消耗。

2 代理的方法比较多,比较分散。

3 代理更注重过程信息的传输:比如发起一个网络请求,可能想要知道此时请求是否已经开始、是否收到了数据、数据是否已经接受完成、数据接收失败

4 “一对一”,对同一个协议,一个对象只能设置一个代理delegate,任何人,任何对象,只要接受,只要允许,只要遵守了相关的协议,TA就可以使用代理。

总结:

公共接口,方法较多也选择用delegate进行解耦。iOS有很多例子比如最常用tableViewDelegate,textViewDelegate德等。

异步和简单的回调用block更好,比如常用的网络库AFNetwork,ASIHTTP库,UIAlertView类。点击事件等、

相关文章

  • 谈谈Block和代理区别和联系

    代理和block的共同特性是回调机制 Block: 1 写法简练,不需要写protocol/函数等、2 block...

  • block和代理的区别和联系

    一 相同点: 都能用来传值,并且都是在某个特定的时间点后,来执行代理或是block里面的代码。 比如:我们一般在做...

  • iOS琐碎总结

    1.为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别? A:...

  • 2020年iOS进阶面试题总结(二)

    1.为什么代理要用weak?代理的delegate和dataSource有什么区别?block和代理的区别? A:...

  • block和代理的区别

    block 和 delegate 都可以通知外面。block 更轻型,使用更简单,能够直接访问上下文,这样类中不需...

  • 代理和Block的区别

    相同点:代理和Block大多是我们都可以用来做倒序传值的。我们都得注意避免循环引用。 不同点:代理使用weak修饰...

  • 代理,通知,和block的区别

    1.NotificationCenter 通知中心:“一对多”,在APP中,很多控制器都需要知道一个事件,应该用通...

  • 总结问题

    1、代理和block的区别: 代理优势:代理占用系统资源小,只是存储了一个对象指针,有三个方法以上的话建议使用代理...

  • block和代理的,通知的区别

    http://www.jianshu.com/p/33753c326232

  • 通知、代理、block的区别和用法

    区别 1.NotificationCenter 通知中心:“一对多”,在APP中,很多控制器都需要知道一个事件,应...

网友评论

      本文标题:谈谈Block和代理区别和联系

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