iPhone - 我应该在dealloc方法中手动释放我的customViewController视图吗?

时间:2011-07-25 19:42:22

标签: iphone uiviewcontroller uinavigationcontroller

我正在使用导航控制器将自定义viewController推送到屏幕上。当我完成并弹出它时,我发现为customViewController调用了dealloc方法,但是从不调用“viewDidUnload”方法。这是否意味着视图仍在那里?如果是这样,这对我来说可能是一个记忆问题。如果是这种情况,我应该在我的customViewContoller中的dealloc方法中释放视图吗?感谢。

2 个答案:

答案 0 :(得分:1)

通常在推送后释放视图控制器。例如:

UIViewController *myVC = [[UIViewController alloc] init];
[[self navigationController] pushViewController:myVC animated:YES];
[myVC release];

答案 1 :(得分:1)

这不是必需的。当您的UIViewController子类收到-dealloc时,您应该释放任何保留的属性。然后它将转到[super dealloc]。不能肯定地说,但是UIViewController上的-dealloc也应该处理所有保留属性的转储。因此,您的观点将被适当发布。

不确定为什么-viewDidUnload没有被调用,但这并不重要。当您弹出视图控制器时,如果您的应用程序的内存压力较低,则可以在不取消分配整个控制器的情况下卸载视图。