位置管理器随机停止更新

时间:2013-04-24 00:13:13

标签: ios objective-c core-location cllocationmanager locationmanager

我正在编写一个使用 CoreLocation 的应用,由于某种原因,位置管理器会随机停止更新位置。

我确保所有对startUpdating方法的调用都在主线程上(不确定它是否重要)。

我已记录了所有委托方法,包括didAuthorizationStatusChangedidPauseUpdatingLocationdidFailWithError,并且发现没有人被调用。

似乎在4次更新后停止;为什么会这样?

更新startUpdatingapplicationDidFinish的调用有效,但稍后在代码中调用该方法会再次停止工作

-(CLLocationManager*) locationManager
{
if(locationManager == nil)
{
        locationManager = [[CLLocationManager alloc] init];
        locationManager.delegate = self;
        locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        locationManager.distanceFilter = kCLDistanceFilterNone;
}

return locationManager;
}


[self.locationManager startMonitoringForRegion:self.venueRegion];

1 个答案:

答案 0 :(得分:-1)

一些事情。

你已经编写了一个自定义的单例getter,除了它不是静态的(应该是getter前面的+符号),这似乎是关闭的。获得位置管理员应如下所示:

CLLocationManager * myManager = [MyLocationManager sharedManager];

接下来,如果这是一个“Getter”方法,它应该是:

- (CLLocationManager *)getLocationManager;

否则,当你点击self.locationManager时,你不会通过你的getter并触发你想要在这里点击的必要的getter操作。