viewDidLoad中init出现iOS内存问题,viewDidUnload中释放
以下代码是否存在任何潜在的内存问题viewDidLoad中init出现iOS内存问题,viewDidUnload中释放,ios,Ios,以下代码是否存在任何潜在的内存问题 - (void)viewDidLoad { locationManager = [[CLLocationManager alloc] init]; } - (void)viewWillAppear:(BOOL)animated { locationManager.delegate = self; locationManager.desiredAccuracy = kCLLocationAccuracyBest; locat
- (void)viewDidLoad
{
locationManager = [[CLLocationManager alloc] init];
}
- (void)viewWillAppear:(BOOL)animated {
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.distanceFilter = kCLDistanceFilterNone;
[locationManager startUpdatingLocation];
}
- (void)viewDidUnload
{
[locationManager release];
locationManager=nil;
[super viewDidUnload];
}
我用仪器检查过,上面的代码显示内存泄漏。除了:
viewDidLoad
的开头添加[super viewDidLoad]代码>
视图的开头将显示:
添加[超级视图将显示:动画]代码>
您应该在dealloc方法中释放locationManager
- (void)dealloc
{
[locationManager release];
[super dealloc];
}
原因是viewDidUnload
不保证被调用
有关详细信息,请参见以下问题:
你说得对。。。我已经用仪器检查过了,上面的代码有内存泄漏。。这就是为什么我要问这个问题。。。这似乎与dealloc配合得很好。。