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