【发布时间】:2011-01-13 16:41:27
【问题描述】:
我希望在推送视图控制器之后,我需要像下面那样释放我对视图控制器的所有权。
CustomViewController *nextViewController = [[CustomViewController alloc] initWithNibName:@"CustomView" bundle:nil];
[[self navigationController] pushViewController:nextViewController animated:YES];
[nextViewController release];
在我这样做之后,我假设导航控制器拥有该对象的所有权,并在完成后释放它,然后在我的 customViewController 上调用 dealloc。我希望当我点击导航栏上的后退按钮并且不再显示视图时会发生这种情况。但这不会发生。我在 CustomViewController 的 dealloc 方法中添加了一个 NSLog(@"CustomViewController did receive dealloc") 但它从未被打印出来。这是正常行为吗?
导航控制器是否只是在做一些事情,比如保留该对象以备不时之需?当内存开始耗尽时它会摆脱它吗?我尝试模拟低内存警告,但没有任何反应。我感觉这个问题的答案是我不应该太担心,并遵循保留/释放/自动释放的标准程序。话虽如此,还有其他人对此进行了深入研究并找到了绝对答案吗?
【问题讨论】:
标签: iphone memory-management memory-leaks uiviewcontroller uinavigationcontroller