Block的循環引用
? 如果在Block中使用_strong修飾符的對象類型自動變量,當block從棧復制到堆時,該對象為Block所持有。這樣就容易引起循環引用。
為了避免循環引用可以使用_block變量、_weak修飾符以及_unsafe_unretained修飾符。?
_block和_weak的區別:
1._block可以修飾對象,也可以修飾基本類型。
2._weak只可以修飾對象。
3._block在block中可以被重新賦值,_weak不可以。
_unsafe_unretained不會被自動置空為nil。