如果我分配/初始化視圖並將其添加到代碼中的另一個視圖(我沒有使用xib) - 當包含UIViewController的dealloc消息發送時,是否需要刪除它?我在某些地方看過這些代碼,並想知道在某些情況下是否需要釋放內存?我是否需要從dealloc中的超級視圖中移除視圖?
感謝, 馬克
如果我分配/初始化視圖並將其添加到代碼中的另一個視圖(我沒有使用xib) - 當包含UIViewController的dealloc消息發送時,是否需要刪除它?我在某些地方看過這些代碼,並想知道在某些情況下是否需要釋放內存?我是否需要從dealloc中的超級視圖中移除視圖?
感謝, 馬克
如果你這樣做,
UIView *v = [[UIView alloc] init];
[self.view addSubview:v];
[v release];
或
UIView *v = [[[UIView alloc] init] autorelease];
[self.view addSubview:v];
,該v
將被釋放時,其父視圖釋放;
當父視圖使用addSubview
時,它將保留子視圖,並在釋放時釋放子視圖。
這是沒有必要的。所有UIView
子類都擁有subviews
數組,它在最終的UIView
dealloc消息中釋放,釋放您的視圖。
如果這是一個新項目,您應該考慮使用ARC。否則下面的答案是正確的。 – 2012-03-05 10:08:16