iOS Block 和 Delegate 的使用比较
来源:互联网 发布:网站域名购买 编辑:程序博客网 时间:2024/04/29 03:10
1.共同的作用:
Block 和 Delegate中的方法都可以理解成回调函数,当某件事情发生的时候取执行一段代码片段
2.Block(代码块)
优点:是一种轻量级的回调,能够直接访问上下文,使用块的地方和块的实现地方在同一个地方,使得代码组织更加连贯
3.Delegate(代理)
相对来说是重量级的回调,
缺点:
因方法的声明和实现分离开来,代码的连贯性不是很好
代理很多时候需要存储一些临时数据
优点:
代理的回调函数可以是一组多个函数,在不同的时机调用不同的回调函数
4.如何选择使用哪一种
1.当回调函数多于3个的时候,采用代理比较好
2.使用代码块容易造成循环引用,代理不会出现该问题
3.其他情况下优先考虑代码块
Block分为三种:
临时性的,只用在栈当中,不会存储起来。比如数组的 foreach 遍历,这个遍历用到的 block 是临时的,不会存储起来。
需要存储起来,但只会调用一次,或者有一个完成时期。
比如一个 UIView 的动画,动画完成之后,需要使用 block 通知外面,一旦调用 block 之后,这个 block 就可以删掉。
需要存储起来,可能会调用多次。
比如按钮的点击事件,假如采用 block 实现,这种 block 就需要长期存储,并且会调用多次。调用之后,block 也不可以删除,可能还有下一次按钮的点击
0 0
- iOS Block 和 Delegate 的使用比较
- block和delegate的使用
- iOS-Delegate-Block-NSNotification的区别和使用
- iOS 学会使用delegate和block<一>
- iOS 学会使用delegate和block<二>
- iOS开发中 delegate和 block传值方法的比较
- block和delegate的区别使用
- [ios] delegate, selector和block
- iOS编程——OC viewController 传值常用方法Delegate和Block的使用
- 何时使用block和Delegate?
- IOS:两种回调的方式实现(delegate和block)
- iOS中block和delegate的区别(面试必问)
- delegate 和 block 的区别
- delegate和block的选择
- delegate、NSNotification、block三者的比较
- iOS开发Delegate,Notification,Block使用心得
- iOS开发 delegate、 SEL和Block
- iOS开发 delegate,SEL和Block
- 为什么我们这么期待Kubernetes?
- 选了3个短信平台进行对比
- charCount.js实现输入文字限制
- 关于Win7 64位下:Navicat无法连接64位Oracle 11gR2:Cannot load OCI DLL 87 解决方法
- iOS设计模式(九) 模板方法模式
- iOS Block 和 Delegate 的使用比较
- 18、元素节点的删除与增加
- description和debugDescription在调试程序时使用总结
- 脚本问题解决积累
- Java 内部类的种类及使用解析
- ubuntu software updater已意外关闭 解决办法
- C++读取坐标文件
- sentinel-redis 使用总结
- 基于fl2440开发板Hello World 模块