我想从MainWindow中的UITabBarController中删除所有项目。我可以这样做:从UITabBarController中删除所有项目
self.tabViewController.viewControllers = [NSArray array];
self.tabViewController.customizableViewControllers = [NSArray array];
但是那里的旧控制器呢?这是更正确的方法吗?
- (void)cleanCurrentTabbar {
for (id ctrl in self.tabViewController.customizableViewControllers) {
[ctrl release];
}
for (id ctrl in self.tabViewController.viewControllers) {
[ctrl release];
}
self.tabViewController.viewControllers = [NSArray array];
self.tabViewController.customizableViewControllers = [NSArray array];
}
你不需要释放tabbar的viewControllers。如果通过设置一个新值来访问属性.customizableViewControllers/.viewControllers,那么在setter方法中,默认情况下会释放此属性的旧值。因此,将[NSArray数组]设置为新值就足够了。 – TRD
@TRD它发布一个数组...不是吗?我想释放数组中的项目。 – NilColor
但是如果你释放一个数组,所有包含项目的释放消息将被发送,因为数组在添加它们时保留了他的项目,所以数组负责释放,而不是你。 – TRD