因此,在我的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。
如果我不使用实例变量,我只是直接创建它,一切都很好。感谢任何帮助,谢谢!
答案 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