在iOS中使用back Viewcontroller时,如何释放nsmuatablearray

在iOS中使用back Viewcontroller时,如何释放nsmuatablearray,ios,objective-c,uiviewcontroller,Ios,Objective C,Uiviewcontroller,我有3个UIViewcontroller A(根viewcontroller)、B和C。我使用下面的代码从A中推送viewcontroller B。从A中推送viewcontroller C的操作与此相同 BViewController *statusView = [[BViewController alloc]initWithNibName:@"BViewController" bundle:nil]; UINavigationController *objNavigationControll

我有3个UIViewcontroller A(根viewcontroller)、B和C。我使用下面的代码从A中推送viewcontroller B。从A中推送viewcontroller C的操作与此相同

BViewController *statusView = [[BViewController alloc]initWithNibName:@"BViewController" bundle:nil];
UINavigationController *objNavigationController=[[[UINavigationController alloc]initWithRootViewController:statusView]autorelease];
[self presentViewController:objNavigationController animated:NO completion:nil];
[statusView release];
我创建了自定义后退按钮,并使用以下代码来后退ViewController A:

AViewController *chooseview = [[AViewController alloc] initWithNibName:@AController" bundle:nil];
}
UINavigationController *navC = [[UINavigationController alloc] initWithRootViewController:chooseview];
[self.navigationController presentViewController:navC animated:NO completion:nil];
[chooseview release];

现在,我想在点击后退按钮后释放ViewController B和C中的许多数组。我该怎么做?我试过使用
[array release]但是在我返回viewcontroller B后,我的应用程序崩溃了。谢谢你的建议。

你可以试着放这样的东西

if ([array count] > 0) {
    [array release];
}

array = [[NSMutableArray alloc] init];

视图中,将出现根视图控制器的

我认为您必须用这种方法释放数组

-(void)viewWillDisappear:(BOOL)animated
{
  // Write Code here to release  
 } 

@特洛伊敌人:不,我不使用ARC;在要释放此阵列的视图中的ViewDidDemouse方法中,如果可能,您正在显示视图控制器而不是推送,可以使用dismissViewControllerAnimated:method返回,释放ViewWillDemouse:method中的阵列。@JosonDaniel为什么要在BViewController中再次初始化AViewController。AViewController已在内存中。尝试从BViewController中重新使用该功能或简单地退出。当关闭视图控制器时,只会释放您的对象。@Bhumeshwerkatre:我如何关闭它?你能给我看一下示例代码吗?谢谢为什么
if([array count]>0)
test?它有点像“你的数组不是空的/它存在”,所以你可以释放smth)或者你可以像这样尝试smth(array!=nil | |[array count]!=0)
你不需要测试;只需调用
release
并分配指针(之后您仍然会这样做)。@特洛伊木马程序内存泄漏怎么办?