如何在Block中使用weakSelf/strongSelf
2016-03-06 00:00
363 查看
先来代码
AFNetWork中有一段相关代码__weak __typeof(self)weakSelf = self; AFNetworkReachabilityStatusBlock callback = ^(AFNetworkReachabilityStatus status) { __strong __typeof(weakSelf)strongSelf = weakSelf; strongSelf.networkReachabilityStatus = status; if (strongSelf.networkReachabilityStatusBlock) { strongSelf.networkReachabilityStatusBlock(status); } };
总结
1、在 Block 内如果需要访问 self 的方法、变量,建议使用 weakSelf。(具体原因就是防止循环引用,具体原因不在过多描述)
2、如果在 Block 内需要多次 访问 self,则需要使用 strongSelf。因为某一次的weakSelf有可能被释放,但
strongSelf 不会被释放。
相关文章推荐
- scrapy安装
- 正则表达式和其在OC中的的使用
- 5.3 Spring核心接口及基本配置
- 在Windows上的MySQL 中如何用命令将数据库转存为.sql文件
- Nginx禁止特定用户代理(User Agents)访问(转)
- mysql数据类型优化
- phpMyAdmin批量修改Mysql数据表前缀的方法
- 编写GO的WEB开发框架 (五): 请求参数封装
- Redis pub/sub Using Spring
- appfog下用客户端管理你的mongodb、mysql(类似)
- MongoDB安装
- 让nodejs应用后台执行:forever
- mongodb常用命令
- node.js定时事务node-schedule
- Maven(四):定制库到Mave本地资源库 (Kaptcha)
- Maven(五):Kaptcha的简单小例(一)
- Maven(六):Kaptcha的简单小例(二)
- DNS的工作原理
- ios开发,javascript直接调用oc代码而非通过改变url回调方式
- OC高效率52之以ARC简化引用计数