typeof(self) bself = self的作用
來源:程序員人生 發布時間:2014-09-06 10:06:31 閱讀次數:3136次
block語句對于其變量都會形成strong reference,對于self也會形成strong reference ,而如果self本身對block也是 strong reference 的話,就會形成 strong reference 循環,造成內存泄露,為了防止這種情況發生,在block外部應該創建一個weak(__block) reference。
所以在block內如果有self的話,一般都會在block外面加一句_block typeof(self)bself = self;
__block typeof(self) bself = self;
[self methodThatTakesABlock:^ {
[bself doSomething];
}
self是如此,對于其他變量亦是如此。別忘了在block中使用變量前對其進行弱引用。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈