weakself的多种写法

// 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之后已经不会出现以上的情况了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容