0

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

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

我已经记录了所有的委托方法,包括didAuthorizationStatusChange, didPauseUpdatingLocationdidFailWithError并且发现没有被调用。

它似乎在 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];
4

1 回答 1

-2

几件事。

您编写了一个自定义的单例吸气剂,除了它不是静态的(应该是吸气剂前面的 + 号),这似乎是关闭的。获取位置管理器应如下所示:

CLLocationManager *myManager = [MyLocationManager sharedManager];

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

-(CLLocationManager*)getLocationManager;

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

于 2013-04-24T03:22:14.277 回答