關於block中使用weakSelf和strongSelf的問題

有時候咱們會碰到這種狀況,spa

__weak typeof(self) weakSelf = self;class

[obj block:^(){變量

  __strong typeof(weakSelf)strongSelf = weakSelf;循環

}];引用

咱們都知道第一句是爲了解決block的循環引用問題,那麼在block中的語句是幹什麼用的呢?word

 

網上查閱資料知道:di

在block中調用 self會引發循環引用,可是在block中須要對weakSelf進行 strong,保證代碼在執行到block中,self不會被釋放,當block執行完後, 會自動釋放該strongSelf;
由於僅僅使用__weak去修飾變量,當別處把變量釋放後,block中該變量也會被釋放掉。
相關文章
相關標籤/搜索