我有一个使用位置服务的应用。 在我的appdelegate中,我正在初始化我的位置管理器属性
if(self.locationManager == nil)
{
self.locationManager = [[[CLLocationManager alloc] init] autorelease]; // allocate cllocationmanager property
self.locationManager.delegate = self; // confirm the delegate
[self.locationManager startUpdatingLocation]; // start updating for location
}
并且dealloc方法
中的位置管理器委托为零- (void)dealloc
{
[_window release];
[_viewController release];
// [locationManager release];
self.locationManager.delegate = nil;
[super dealloc];
}
当我从设置中切换位置服务时,应用程序崩溃了10次
在仪器中调试后,显示错误
请建议修复相同的内容。
答案 0 :(得分:0)
创建一个实例变量,如果你已经没有与cllocationmanager属性相同的名称,并且只在你设置如下所示时调用self.locationmanager
if (nil == locationManager){
self.locationManager = [[CLLocationManager alloc] init];
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.delegate = self;
[locationManager startUpdatingLocation];
startLocation = nil;
}
这是为arc编写的,所以如果需要,请添加自动释放。
答案 1 :(得分:0)
您没有告诉locationManager
stopUpdatingLocation
- Apple docs