首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何正确发布UITabController

如何正确发布UITabController
EN

Stack Overflow用户
提问于 2011-11-01 20:33:59
回答 2查看 71关注 0票数 3

这听起来可能是个新手问题。但是,我对iOS开发还是个新手。

我以编程方式创建了UITabController对象,如下所示。

代码语言:javascript
复制
mTabBarController = [[UITabBarController alloc] init];
...
mTabBarController.viewControllers = [NSArray arrayWithArray:tabBarItems];
[tabBarItems release];

像这样在dealloc中释放mTabBarController。

代码语言:javascript
复制
- (void)dealloc {
    [mTabBarController release];
}

现在我的问题是:我会不会出现内存泄漏?当我赋值t viewController时,tabBarItems的引用计数仍然是1。当我释放mTabBarController时,它是否也释放了所有的视图控制器?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-01 20:40:34

是的,tab控制器拥有一个视图控制器数组(数组中的所有内容都被保留)。只要正确释放或自动释放添加到tabBarItems数组中的项,就不会造成泄漏。

将对象关系视为所有权真的很有帮助。

票数 1
EN

Stack Overflow用户

发布于 2011-11-01 20:41:13

不应该将UITabBarController作为另一个ViewController的子级放置,因此您必须始终在dealloc中释放它。如果TabBarController的视图是应用程序窗口的子视图,那么不要在dealloc中释放它,因为唯一调用dealloc的时间是在程序关闭的时候,在这种情况下,无论如何你的控制器都会被释放。然而,有些人喜欢在dealloc中发布它,只是为了保持代码的一致性。你所做的一切都很好。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7966516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档