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