試圖通過閱讀這個explanation來理解Objectice-C中的強與弱引用,這對我來說很重要。但有一種情況我無法真正弄清楚。假設它在ARC環境中,我將使用 - (連字符)作爲強引用,而。(點)作爲現在的弱引用。比方說,我有一個視圖控制器對象MyViewController vc = [MyViewController alloc] init];
,它有看法,所以他們的關係就像是UIView上的多個強引用Objective-C
VC ------視圖
具有很強的參考。一旦vc
被釋放,view
也將被釋放。
如果我想從Interface Builder中將視圖添加到視圖中,例如UILabel,並將其連接到對象,通常我會聲明弱引用ivar @property (weak, nonatomic) IBOutlet UILabel *myLabel
,因爲視圖已經有很強的參考。所以,現在的關係看起來像
VC ------查看------ myLabel
和
VC ............... ... myLabel
因此,當vc
被重新分配時,view
被取消分配,然後myLabel
也被取消分配。但是,如果我還設置vc
和mylabel
之間有很強的參考,現在的關係變得
VC ------查看------ myLabel
和
VC - ---- myLabel
當vc
被釋放時,myLabel是否也會被釋放?我認爲是因爲現在沒有任何對象強烈地提到它。但我想確認一下。如果我在這裏丟失任何東西,請告訴我。提前致謝。
謝謝你的僞代碼,我的理解是一樣的。從這個[討論](http://stackoverflow.com/a/7729141/691626),它有一個鏈接到蘋果的文檔,子視圖(myLable在我的例子中)應該有弱引用。看起來,Apple仍然建議對子視圖提供較弱的參考,儘管在實施中不會出現邏輯錯誤和強烈的參照。 –