gpt4 book ai didi

iphone - 内存管理和 viewDidUnload?

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:46 26 4
gpt4 key购买 nike

如果我有一个 viewController 设置如下:

@interface MapViewController : UIViewController <MKMapViewDelegate, CLLocationManagerDelegate> {
CLLocationManager *locationManager;
}

-(void)viewDidLoad {
[super viewDidLoad];
locationManager = [[CLLocationManager alloc] init];
}

当谈到内存管理时,我是否应该同时向 viewDidUnload 和 dealloc 添加 release?

-(void)viewDidUnload {
[locationManager release];
locationManager = nil;
[super viewDidUnload];
}


-(void)dealloc {
[locationManager release];
[super dealloc];
}

欢呼加里

编辑:

[super dealloc] 根据 Deans 友好的评论移至底部。

最佳答案

简答:

除非您在 viewDidLoad(或 xib)中创建/保留它,否则不要在 viewDidUnload 中释放它。

长答案:

viewDidUnload 用于释放您在创建 View 时可能创建的任何内容 - 这包括 viewDidLoad 中的内容,还包括从 xib 文件内部创建的 IBOutlet 属性。这些都应该被释放并在 viewDidUnload 中设置为 nil。

任何其他东西都应该在 dealloc 中释放。

想法是,如果调用 viewDidUnload 来释放一些内存,则可以从 viewDidLoad 方法完全重新创建 View 。

关于iphone - 内存管理和 viewDidUnload?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2950636/

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