当切换位置服务时,iphone应用程序崩溃

时间:2013-07-20 11:25:17

标签: ios objective-c core-location

我有一个使用位置服务的应用。 在我的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次

在仪器中调试后,显示错误

enter image description here

请建议修复相同的内容。

2 个答案:

答案 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