一、a強引用b,b強引用a,b是a的全局變量(這個時候會形成循環引用)作用域
二、a強引用b,b強引用a,b是a的局部變量(這個時候是不會形成循環引用的)class
三、a強引用b,b中的block是一個方法參數,b是a的全局變量(這個時候不會形成循環引用)變量
四、a強引用b,b中的block是一個屬性,b是a的全局變量(這個時候會形成循環引用)循環
PS:三、4是在一、2的狀況下添加了一個block,是一、2的細分,因此若是是2的狀況那麼不會形成循環引用問題,咱們考慮在1的狀況下。引用
分析:方法
2狀況不會形成循環引用,是由於b是a的局部變量,b在離開做用域後就被釋放了,不是在a的delloc方法中釋放的,因此不會形成循環引用di
3狀況不會形成循環引用,是由於block是b的一個參數變量,在離開做用域後block就被釋放了,對a的引用也就消失了block