一個(gè)對象中強(qiáng)引用了block,在block中又強(qiáng)引用了該對象拐纱,就會發(fā)射循環(huán)引用铜异。
解決方法是將該對象使用__weak或者_(dá)_block修飾符修飾之后再在block中使用。
id weak weakSelf = self; 或者 weak __typeof(&*self)weakSelf = self該方法可以設(shè)置宏
id __block weakSelf = self;
或者將其中一方強(qiáng)制制空xxx = nil秸架。
檢測代碼中是否存在循環(huán)引用問題揍庄,可使用 Facebook 開源的一個(gè)檢測工具FBRetainCycleDetector。