UIViewController的dealloc中的[super dealloc]在iPad中出现问题

时间:2011-07-01 16:28:38

标签: ipad dealloc super

我正在开发一个应用程序,我将一个视图控制器推送到UINavigationController并在导航控制器保留它时立即释放它。当我弹出视图控制器时,dealloc方法正在按预期调用但问题是应用程序正在崩溃。如果我在GDB中通过启用NSZombie来说明-[MyViewController isKindOfClass:]: message sent to deallocated instance 0x6847a00如果我从我的视图控制器中移除[super dealloc] dealloc方法它工作得很好。除了[super dealloc]之外,我在dealloc方法中没有其他任何内容。这里可能出现问题,任何人都可以帮忙。代码片段如下:

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];

}

1 个答案:

答案 0 :(得分:0)

猜测,但我怀疑问题在于这一行:

myViewController.parentViewController = self;

UIViewController的parentViewController属性标记为readonly,我将其视为强烈的消息,您不应该将其弄乱。