这听起来可能是个新手问题。但是,我对iOS开发还是个新手。
我以编程方式创建了UITabController对象,如下所示。
mTabBarController = [[UITabBarController alloc] init];
...
mTabBarController.viewControllers = [NSArray arrayWithArray:tabBarItems];
[tabBarItems release];像这样在dealloc中释放mTabBarController。
- (void)dealloc {
[mTabBarController release];
}现在我的问题是:我会不会出现内存泄漏?当我赋值t viewController时,tabBarItems的引用计数仍然是1。当我释放mTabBarController时,它是否也释放了所有的视图控制器?
发布于 2011-11-01 20:40:34
是的,tab控制器拥有一个视图控制器数组(数组中的所有内容都被保留)。只要正确释放或自动释放添加到tabBarItems数组中的项,就不会造成泄漏。
将对象关系视为所有权真的很有帮助。
发布于 2011-11-01 20:41:13
不应该将UITabBarController作为另一个ViewController的子级放置,因此您必须始终在dealloc中释放它。如果TabBarController的视图是应用程序窗口的子视图,那么不要在dealloc中释放它,因为唯一调用dealloc的时间是在程序关闭的时候,在这种情况下,无论如何你的控制器都会被释放。然而,有些人喜欢在dealloc中发布它,只是为了保持代码的一致性。你所做的一切都很好。
https://stackoverflow.com/questions/7966516
复制相似问题