在不久前看AFNetworking的源码时候发现了这么一句:
1 2 3 4 5 6 7 8 9 10 | |
当时也没注意为什么要写成&*这种样子… 今天再想起来, 搜了一圈, 终于让我找到原因了…
正文
其实以上的4种写法都是对的
AFNetworking里面不写成以上这行代码的原因是因为 typeof(self) 会被解析成 XxxViewController *const __strong (假如你的self是XxxViewController的话), 这样的话就就会报错…(没有老版本, 没有验证, 不过看网上的结论应该是这样了)
不过, 如果你写成了__typeof(self)也没什么问题… 那是因为在LLVM3.1之后已经不会出现以上的情况了… ( via )
本文详细解释了AFNetworking源码中使用__weak关键字的原因及不同写法的区别,帮助开发者正确理解和使用ARC与Block相关知识。
1460

被折叠的 条评论
为什么被折叠?



