typeof(self) 的作用


block對於其變量都會形成strong reference,對於self也會形成strong reference ,而如果self本身對block也是 strong reference 的話,就會形成 strong reference 循環,造成內存泄露,為了防止這種情況發生,在block外部應該創建一個week(__block) reference。

所以在block內如果有self的話,一般都會在block外面加一句_block typeof(self)bself = self;

__block typeof(self) bself = self;  
  
[self methodThatTakesABlock:^ {  
  
    [bself doSomething];  
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM