天天看點

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];  

}