我一直髮現這個混淆。有人可以爲我解釋嗎?意見和其他物體的泄漏
在一個視圖控制器類中,例如,我有一個滾動視圖,我想向它添加一些視圖。所以我在視圖控制器中創建了一個幫助器方法,該方法創建視圖並將其返回給調用者。調用者又將這個新視圖添加到滾動視圖。
所以在這裏我所說的方法來獲取視圖並將其直接傳遞到addSubView:
[scrollView addSubView:[self getView]];
這裏是創建視圖的方法:
-(UIView *)getView {
UIView *v = [[UIView alloc] init];
// do all the guff I need to configure the view
return v;
}
的問題是在何時何地v
獲得發佈嗎?我是否應該在getView
中創建時將它指定爲autorelease
或者在我呼叫addSubView:
之後是否釋放它?謝謝。
謝謝你;-) – user7865437 2011-05-15 11:38:01
如果你一次只考慮一塊代碼,這些內存管理問題就容易多了。考慮你的助手方法:你創建一個對象,你必須釋放/ autorelease它。退出後發生的事情與您的方法無關。 – kubi 2011-05-15 19:41:49
當調用你的助手方法時:方法簽名('getView')將會按照慣例返回一個自動釋放對象。如果你想獲得所有權,保留這個對象,否則什麼也不要做。 – kubi 2011-05-15 19:43:19