0

因此,在我的 ARC 项目中,每当我使用实例变量分配 ViewController 时,在解除或弹出控制器时似乎永远不会调用 dealloc。

在我的标题中:

ComposerView *composeView;

...

@property (nonatomic, retain) ComposerView *composeView;

...

@synthesize composeView;

然后在我的代码中:

if (composeView == nil)
      composeView = [[ComposeView alloc] init];

[self.navigationController pushViewController: composeView];

现在,在 composeView 中,我已将所有委托设置为 nil,但从未调用 dealloc,随后,在重新加载视图控制器时不会再次调用 viewDidLoad。

如果我不使用实例变量,而直接创建它,一切都很好。任何帮助表示赞赏,谢谢!

4

1 回答 1

0

如果您使用 ARC,那么您应该将您的属性声明为强/弱,而不是保留/分配。

你可能想要

@property (nonatomic, weak) ComposerView *composeView;

查看此链接以了解强/弱的描述: https ://developer.apple.com/library/ios/#releasenotes/ObjectiveC/RN-TransitioningToARC/_index.html#//apple_ref/doc/uid/TP40011226

于 2012-02-09T03:04:27.183 回答