天天看點

iOS開發中__weak typeof(self)釋義

iOS開發中有一個類型經常用到,通常寫法為:

__weak typeof(self) weakself = self;
           

這種寫法通常出現在block中,這種寫法的原因是,block對其變量都是strong reference,在block中使用self也會形成strong reference。而self如果對block也是strong reference的話,就會造成strong reference循環,進而使得記憶體洩漏。為避免該現象發生,就需要在block外部建立一個弱引用的self對象。例如:

__weak typeof(self) weakself = self;
[weakself addLegendFooterWithRefreshingBlock:^{
    //do something
     [weakself.footer endRefreshing];
}
           

參考網址:http://m.oschina.net/blog/425285

繼續閱讀