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



我正在开发一个应用程序,我将一个视图控制器推到UINavigationController上,并在导航控制器保留它时立即释放它。当我弹出视图控制器时,dealloc方法会按预期调用,但问题是应用程序正在崩溃。如果我在GDB中通过启用NSZombie来观察它的说法-[MyViewController isKindOfClass:]: message sent to deallocated instance 0x6847a00如果我从视图控制器的dealloc方法中删除[super 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];
}

只是猜测,但我怀疑问题出在这行:

myViewController.parentViewController = self;

UIViewController的parentViewController属性被标记为readonly,我认为这是一个强烈的信息,你不应该搞砸它

最新更新