码迷,mamicode.com
首页 > 其他好文 > 详细

Weakself的一种写法(转)

时间:2015-06-25 21:10:59      阅读:98      评论:0      收藏:0      [点我收藏+]

标签:

http://rocry.com/2012/12/18/objective-c-type-of/?utm_source=tuicool

在不久前看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之后已经不会出现以上的情况了…

Weakself的一种写法(转)

标签:

原文地址:http://www.cnblogs.com/allen123/p/4600758.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!