【问题标题】:The [super dealloc] in dealloc of UIViewController giving problem in iPadUIViewController 的 dealloc 中的 [super dealloc] 在 iPad 中给出问题
【发布时间】: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];

}

【问题讨论】:

  • 请输入代码,从那里推送和释放视图控制器。

标签: ipad dealloc super


【解决方案1】:

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

myViewController.parentViewController = self;

UIViewController 的parentViewController 属性标记为readonly,我认为这是一个强烈的信息,您不应该乱用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-28
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2011-10-18
    • 2011-11-17
    • 1970-01-01
    相关资源
    最近更新 更多