2012-03-05 66 views
1

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

感谢, 马克

+1

如果这是一个新项目,您应该考虑使用ARC。否则下面的答案是正确的。 – 2012-03-05 10:08:16

回答

2

如果你这样做,

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

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

,该v将被释放时,其父视图释放;

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

2

这是没有必要的。所有UIView子类都拥有subviews数组,它在最终的UIView dealloc消息中释放,释放您的视图。

相关问题