关于 weakSelf 的几种写法
2014-09-16 15:18
246 查看
原文地址:点击打开链接
原文地址:点击打开链接
前言
在不久前看AFNetworking的源码时候发现了这么一句:1 2 3 4 5 6 7 8 9 10 | // 不知道这行代码的使用场景的同学你该去自习看看ARC的注意事项和Block的使用了 // AFNetworking的写法 __weak __typeof(&*self)weakSelf = self; // 我之前一直这么写的 __weak __typeof(self) weakSelf = self; // 或者这么写 __weak XxxViewController *weakSelf = self; // 或者这么写 __weak id weakSelf = self; |
正文
其实以上的4种写法都是对的AFNetworking里面不写成以上这行代码的原因是因为
typeof(self)会被解析成
XxxViewController *const __strong(假如你的self是XxxViewController的话), 这样的话就就会报错…(没有老版本, 没有验证, 不过看网上的结论应该是这样了)
不过, 如果你写成了__typeof(self)也没什么问题… 那是因为在LLVM3.1之后已经不会出现以上的情况了… ( via )
总结
TODO: ARC的文档值得仔细看看http://clang.llvm.org/docs/AutomaticReferenceCounting.html之前推荐的 Multithreading and Memory Management for iOS and OS X是一本好书
相关文章推荐
- 关于java中的main方法的几种写法
- 关于transition回调函数的几种写法
- 由一道面试题想到的关于归并排序的几种写法
- 关于JavaScript中的几种匿名行数的写法
- 关于解决导出Excel乱码的几种代码写法
- 关于“约瑟夫环”的php的几种写法
- 关于SQL server web 配置中connectionStrings 的几种写法
- 关于两个整数的交换的几种写法
- 关于<a></a>链接的几种写法
- Oracle(三) - Oracle关于Max和Min函数的几种写法比较
- 关于JavaScript中的几种匿名行数的写法
- 关于js的几种写法
- 关于版权声明的写法
- 爱的几种写法
- 关于IIS连接数的几种解释
- Creator2中关于组件验证的几种方式
- 关于SharePoint中查询写法和注意的地方
- 关于tail在unix和windows下的几种实现
- 关于classview中类的消失----几种解决方法
- “回”字有几种写法