// 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之后已經(jīng)不會出現(xiàn)以上的情況了