gpt4 book ai didi

iphone - UIViewController 不调用 dealloc 或调用它两次

转载 作者:行者123 更新时间:2023-11-29 04:30:44 25 4
gpt4 key购买 nike

我的单例和 UIViewController 有一些问题;

单例.h

@property (nonatomic, retain) UIViewController *viewController;

单例.m

...

@synthesize viewController = _viewController;

- (void)load {
self.viewController = [[[UIViewController alloc] initWithNibName:@"NibName" bundle: nil] autorelease];
}

- (void)unload {
[_viewController release];
}

viewController由应用程序的不同部分通过pushViewController:animated:使用。但有时我需要通过调用 Singleton 类的方法 - (void)unload 来释放 viewController !如果pushViewController:animated:从不调用viewController一切都很好并且dealloc正在调用,但是如果pushViewController(并且viewController执行viewDidLoad),则dealloc不起作用。如果我做类似 self.viewController = nil; dealloc 调用两次...我做错了什么???

最佳答案

您的卸载函数应仅包含:

- (void)unload {
self.viewController = nil;
}

当您将保留属性设置为 nil 时,它会释放实例变量并将其置零。您只是在此处留下了一个悬空指针。

关于iphone - UIViewController 不调用 dealloc 或调用它两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11769615/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com