首页 > 其他 > 详细

weakself的一种写法

时间:2015-02-12 16:26:10      阅读:231      评论:0      收藏:0      [点我收藏+]

前言

在不久前看AFNetworking的源码时候发现了这么一句:

// 不知道这行代码的使用场景的同学你该去自习看看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 )

总结


本文出自 “小刘_Blog” 博客,请务必保留此出处http://liuyafang.blog.51cto.com/8837978/1614042

weakself的一种写法

原文:http://liuyafang.blog.51cto.com/8837978/1614042

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!