У меня проблема с startMonitoringSignificantLocationChanges
в iOS 8
При использовании следующего кода мое физическое устройство и симулятор iOS 8 никогда не использовали метод didUpdateLocations
:
-(void)viewDidLoad {
if (self.locationManager==nil) { self.locationManager = [[CLLocationManager alloc] init]; }
self.locationManager.activityType = CLActivityTypeFitness;
self.locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
self.locationManager.delegate = self;
if ([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
NSLog(@“requestAlwaysAuthorization”);
[self.locationManager requestAlwaysAuthorization];
}
[self.locationManager startMonitoringSignificantLocationChanges];
}
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations {
NSLog(“didUpdateLocation”);
}
Если я заменю startMonitoringSignificantLocationChanges
на startUpdatingLocation
, физическое устройство получит одно обновление (чего я не ожидал), но симулятор продолжит получать постоянные обновления (это то, что я ожидал, но не то, что я хочу).
Буду очень признателен за любые идеи о том, как это исправить. Я также предпочел бы использовать requestWhenInUseAuthorization
вместо requestAlwaysAuthorization
, но я читал в другом месте, что если я хочу использовать startMonitoringSignificantLocationChanges
, мне нужно использовать requestAlwaysAuthorization
.