iOS中一些概念的理解:delegate,block,notification
来源:互联网 发布:appcan mvvm数据绑定 编辑:程序博客网 时间:2024/04/29 05:38
委托模式
通知:“一对多”,在APP中,很多控制器都需要知道一个事件,应该用通知;
delegate:
1,“一对一”,对同一个协议,一个对象只能设置一个代理delegate,所以单例对象就不能用代理;
2,代理更注重过程信息的传输:比如发起一个网络请求,可能想要知道此时请求是否已经开始、是否收到了数据、数据是否已经接受完成、数据接收失败
block:
1:写法更简练,不需要写protocol、函数等等
2,block注重结果的传输:比如对于一个事件,只想知道成功或者失败,并不需要知道进行了多少或者额外的一些信息
3,block需要注意防止循环引用:
ARC下这样防止:
__weak typeof(self) weakSelf = self;
[yourBlock:^(NSArray *repeatedArray, NSArray *incompleteArray) {
[weakSelf doSomething];
}];
非ARC
__block typeof(self) weakSelf = self;
[yourBlock:^(NSArray *repeatedArray, NSArray *incompleteArray) {
[weakSelf doSomething];
}];
控件事件
UIView使用delegate, UIControl使用target-action形式。比如UISwitch继承于UIControl而不是UIView(当然UIControl最终也是继承于UIView),继承于UIControl的控件使用addTarget添加对应事件而不是代理;UITableView继承于UIView,就是用delegate。
0 0
- iOS中一些概念的理解:delegate,block,notification
- Notification,Delegate,KVO,Block的浅易理解
- KVO、Notification、Delegate 三个概念的深入理解整理
- iOS开发Delegate,Notification,Block使用心得
- delegate,block,notification三者的运用
- IOS中delegate、notification和KVO的区别和介绍
- iOS通讯模式(KVO、Notification、Delegate、Block、Target-Action的区别)
- iOS通讯模式(KVO、Notification、Delegate、Block、Target-Action的区别)
- 个人对于OC中delegate、block的简单理解
- iOS页面间传值方式(代理Delegate,通知Notification,块Block)
- 对iOS 中自定义delegate的理解
- iOS中block和delegate的区别(面试必问)
- KVO KVC Notification Delegate Block
- ios delegate和notification的区别
- iOS----delegate和Notification的区别
- 1类之间通信的常用方法Block、Notification、Delegate
- 代理delegate与通知Notification、block的使用区别
- block 的一些理解
- <Troubleshooting> libmawt.so: libXext.so.6: cannot open shared object file: No such file or director
- knockout js动态绑定viewModel的对象属性
- Linux学习路线
- Hibernate和Spring的缓存机制
- ECS Linux系统重置mysql数据库root用户密码
- iOS中一些概念的理解:delegate,block,notification
- Android ,在争议中逃离 Linux 内核的 GPL 约束
- 一篇还不错的介绍scrapy的文章
- OpenCV学习笔记(一):读取、显示、保存图片
- 理解和使用 JavaScript 中的回调函数
- C++:泛型编程(国名排序)
- Masonry介绍与使用实践:快速上手Autolayout
- import static 包的作用
- HDU1050