當block中用到self時,需謹慎!
來源:程序員人生 發布時間:2014-12-19 08:22:48 閱讀次數:3619次
讓人蛋疼的block!
block對其變量都會構成strong reference,對self也會構成strong reference ,而如果self本身對block也是 strong reference 的話,就會構成 strong reference 循環,造成內存泄漏,為了避免這類情況產生,在block外部應當創建1個week(__block) reference。
所以在block內如果有self的話,1般都會在block外面加1句_block typeof(self)bself = self;
__block typeof(self) bself = self;
[self methodThatTakesABlock:^ {
[bself doSomething];
}
1定要避免在block中用到self時把self對象retain, 造成內存泄漏。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈