关于block中使用weakSelf和strongSelf的问题
2016-03-29 12:21
239 查看
有时候我们会碰到这种情况,
__weak typeof(self) weakSelf = self;
[obj block:^(){
__strong typeof(weakSelf)strongSelf = weakSelf;
}];
我们都知道第一句是为了解决block的循环引用问题,那么在block中的语句是干什么用的呢?
网上查阅资料知道:
在block中调用self会引起循环引用,但是在block中需要对weakSelf进行 strong,保证代码在执行到block中,self不会被释放,当block执行完后, 会自动释放该strongSelf;
因为仅仅使用__weak去修饰变量,当别处把变量释放后,block中该变量也会被释放掉。
__weak typeof(self) weakSelf = self;
[obj block:^(){
__strong typeof(weakSelf)strongSelf = weakSelf;
}];
我们都知道第一句是为了解决block的循环引用问题,那么在block中的语句是干什么用的呢?
网上查阅资料知道:
在block中调用self会引起循环引用,但是在block中需要对weakSelf进行 strong,保证代码在执行到block中,self不会被释放,当block执行完后, 会自动释放该strongSelf;
因为仅仅使用__weak去修饰变量,当别处把变量释放后,block中该变量也会被释放掉。
相关文章推荐
- if括号中的潜规则
- 排序算法:Insertion Sort和Merge Sort in GoLang
- 关于迷宫
- Git常用命令
- iOS开发学习路径的一些建议
- 关于迷宫
- Angularjs实现多个页面共享数据的方式
- <div+css页面布局课堂笔记>11---页面布局网站首页设计实例__终极版(仿csdn首页)
- cf25d 修路使其联通 (并查集)
- lightoj 1071 - Baker Vai DP
- 中文 iOS/Mac 开发博客列表
- XML初步
- 日常代码
- Objective-C编码规范[译]
- typedef和#define的区别及用法
- 机器学习的数学基础(一)—— 期望、方差、协方差与相关系数
- 将中文转为拼音 iOS
- Docker Image
- 成都Uber优步司机奖励政策(3月29日)
- 机房收费——存储过程+事务