0

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

我确信到startUpdating方法的所有调用都在主线程中(不知道,它甚至事项)。

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

4次更新后似乎停止;为什么会发生?

UPDATE:以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

夫妇的事情。

你已经写了一个自定义的单吸气,除了它不是静态的(应该是在吸气前的+号),这似乎关闭。获取位置管理器应该是这样的:

CLLocationManager * myManager = [MyLocationManager sharedManager]

接着,如果这是一个 “吸气剂” 的方法,它应该是:

- (CLLocationManager *)getLocationManager;

否则,当你打self.locationManager,你是不是要通过你的getter和触发你正试图在这里打了必要的吸气操作。

+0

那不是问题,objc中的属性获取访问器setVarName和varName。我同意单身螨虫是错误的,但似乎分配一个实例没有问题 – TMacGyver 2013-04-24 15:05:26