使用alloc创建视图并在另一个视图上调用addsubview = 2保留

时间:2011-04-28 13:52:34

标签: iphone objective-c

在这种情况下,我需要了解内存方面的情况。我是否正确地假设在使用addSubView方法时视图保留了新视图,然后在调用removeFromSuperView时,该superview的保留计数减少到零(最终)?

我正在创建一个这样的视图:

homeViewController = [[HomeViewController alloc]init]; //self retain count = 1
[self.view addSubview:homeViewController.view]; //self retain count = 1; self.view retain count = 1

我正在删除这样的视图:

[homeViewController.view removeFromSuperview]; //self retain count = 1; self.view retain count = 0

2 个答案:

答案 0 :(得分:1)

当您执行addSubview时,它会保留视图,因此如果您不想跟踪它何时不再使用,您可以自动发布它。

答案 1 :(得分:1)

HomeViewController也保留了视图,因为它是视图的控制器。因此,除非控制器也被释放,否则视图不会被销毁。