处理Block中的self问题(Capturing 'self' strongly in this block is likely to lead to a retain cycle)
2015-08-01 14:47
519 查看
警告:ARC Retain Cycle
Capturing 'self' strongly in this block is likely to lead to a retain cycle
代码:
self.refreshHeader.beginRefreshingBlock=^(){
// 后台执行:
dispatch_async(dispatch_get_global_queue(0, 0), ^{
sleep(2);
dispatch_async(dispatch_get_main_queue(), ^{
// 主线程刷新视图
weakSelf.total=20;
[self.mainTableView reloadData];
[self.refreshHeader endRefreshing];
});
});
};
针对这个问题,解决很简单,将self弱化即可。修改后代码如下:
__weak MainViewController * weakSelf = self;
self.refreshHeader.beginRefreshingBlock=^(){
// 后台执行:
dispatch_async(dispatch_get_global_queue(0, 0), ^{
sleep(2);
dispatch_async(dispatch_get_main_queue(), ^{
// 主线程刷新视图
weakSelf.total=20;
[weakSelf.mainTableView reloadData];
[weakSelf.refreshHeader endRefreshing];
});
});
};
Capturing 'self' strongly in this block is likely to lead to a retain cycle
代码:
self.refreshHeader.beginRefreshingBlock=^(){
// 后台执行:
dispatch_async(dispatch_get_global_queue(0, 0), ^{
sleep(2);
dispatch_async(dispatch_get_main_queue(), ^{
// 主线程刷新视图
weakSelf.total=20;
[self.mainTableView reloadData];
[self.refreshHeader endRefreshing];
});
});
};
针对这个问题,解决很简单,将self弱化即可。修改后代码如下:
__weak MainViewController * weakSelf = self;
self.refreshHeader.beginRefreshingBlock=^(){
// 后台执行:
dispatch_async(dispatch_get_global_queue(0, 0), ^{
sleep(2);
dispatch_async(dispatch_get_main_queue(), ^{
// 主线程刷新视图
weakSelf.total=20;
[weakSelf.mainTableView reloadData];
[weakSelf.refreshHeader endRefreshing];
});
});
};
相关文章推荐
- Paint及Canvas的简单应用
- http://blog.csdn.net/hellowxwworld/article/details/10720765
- hdu1839Delay Constrained Maximum Capacity Path 二分+最短路
- Tomcat全局/局部https访问配置方法【tomcat容器的配置文件web.xml中添加security-constraint】
- 2015 Multi-University Training Contest 3(HDOJ5316、5317、5319、5326)
- 利用playfair置换实现密钥加密
- 安装 rails 失败
- Exception from container-launch: org.apache.hadoop.util.Shell$ExitCodeException
- HDU-5319 Painter
- EAGAIN、EWOULDBLOCK、EINTR与非阻塞 长连接
- hdu 1151 Air Raid(最小路径覆盖)
- 获得手势所在的图片坐标 & CGRectContainsPoint
- hdu 5335 Walk Out(bfs+斜行递推) 2015 Multi-University Training Contest 4
- 2015 Multi-University Training Contest 2
- hdu2473 Junk-Mail Filter
- 基础知识:开漏(open drain)和开集(open collector)
- 可视化存储智能解决方案之一“大话Raid2.0”
- Submission Details
- Xcode failed to get reply to handshake packet
- rails 学习第一天笔记