我在导航控制器上使用 setViewControllers,例如:
XYZController *xyz = [XYZController alloc] initWithXibName:@"XYZController"];
[myNavController setViewControllers:xyz];
[xyz release];
我正在检查仪器中的分配,但是我发现这个函数调用仪器中实时对象的次数会增加,如果这个函数被调用 5 次,仪器会在 #live 中显示 5 次。
这意味着它正在分配内存,我如何处理内存分配。
编辑:
RootViewController *rootController = [[RootViewController alloc] initWithNibName:@"RootViewController" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:rootController];
[rootController.navigationController.navigationBar setHidden:YES];
[self.myNavController setViewControllers:nil];
[self.myNavController setViewControllers:[NSArray arrayWithObjects:navController,nil]];
[rootController release];
[navController release];
这是我在应用程序中使用的实际代码。这里的问题是,每当调用这段代码时,仪器中的 rootController 活对象计数总是会增加。不仅rootController数量增加,而且类变量也没有释放,因此内存堆积。结果是我的应用程序的性能在很大程度上降低了。
请就此提出建议。