我是否需要从dealloc中的超级视图中删除视图?

时间:2012-03-05 09:43:34

标签: objective-c ios memory-management

如果我分配/初始化一个视图并将其添加到代码中的另一个视图(我没有使用xib) - 当发送包含UIViewController的dealloc消息时,是否需要将其删除?我在某些地方看过这段代码,并想知道在某些情况下是否有必要释放内存?

谢谢, 马克

2 个答案:

答案 0 :(得分:2)

这不是必需的。所有UIView子类都包含subviews数组,该数组会在最终UIView dealloc消息中释放,该消息会释放您的视图。

答案 1 :(得分:2)

如果你这样做,

UIView *v = [[UIView alloc] init];
[self.view addSubview:v];
[v release];

UIView *v = [[[UIView alloc] init] autorelease];
[self.view addSubview:v];

v将在其父视图发布后发布;

当父视图使用addSubview时,它将保留子视图,并在发布时释放子视图。