实例变量与否... dealloc的问题

时间:2012-02-09 02:55:54

标签: uiviewcontroller ivar

因此,在我的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。

如果我不使用实例变量,我只是直接创建它,一切都很好。感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

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

你可能想要

@property (nonatomic, weak) ComposerView *composeView;

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