【发布时间】:2011-07-01 16:28:38
【问题描述】:
我正在开发一个应用程序,我将一个视图控制器推到 UINavigationController 并在导航控制器保留它时立即释放它。当我弹出视图控制器时,dealloc 方法按预期调用,但问题是应用程序崩溃了。如果我通过启用 NSZombie 在 GDB 中观察到它说 -[MyViewController isKindOfClass:]: message sent to deallocated instance 0x6847a00。如果我从我的视图控制器的 deallocmethod 中删除 [super dealloc],它的工作就很好 .我在dealloc方法中除了[super dealloc]没有别的东西。这可能是什么问题,请任何人帮忙。代码sn-p如下:
MyViewController *myViewController = [[MyViewController alloc] initWithNibName:nil bundle:nil];
myViewController.path = selectedPath; //very important to set path here
myViewController.parentViewController = self;
[self cleanBookshelf];
[self.navigationController pushViewController:myViewController animated:NO];
[myViewController release];
[indicatorView removeFromSuperview];
[loadingindicator stopAnimating];
我在 myViewController 的一种操作方法中弹出
-(IBAction)goBack:(UIButton*)sender{
[self.navigationController popViewControllerAnimated:YES];
}
【问题讨论】:
-
请输入代码,从那里推送和释放视图控制器。