O CLLocationManager não funciona o tempo todo (iOS 8, Xcode 6)
Basicamente metade do tempo que o método delegado
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;
não é chamado de todo. Mas na outra metade do tempo funciona perfeitamente! Descobri que isso geralmente acontece quando eu inicio o Xcode depois de fechar e sair, mas depois disso ou algumas vezes depois parece que está funcionando bem. Não tenho 100% de certeza se é apenas um problema do Xcode ou o quê, estarei recebendo uma licença de desenvolvedor em breve, para ver se funcionará bem em um dispositivo real.
A partir do viewDidAppear (tentado no viewDidLoad também, não fez diferença), eu executo um método para iniciar minhas coisas locationManager:
locationManager = [[CLLocationManager alloc]init];
[locationManager setDelegate:self];
locationManager.distanceFilter = 20.0f;
locationManager.desiredAccuracy = kCLLocationAccuracyBest;
locationManager.pausesLocationUpdatesAutomatically = NO;
if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)])
[locationManager requestAlwaysAuthorization];
[locationManager startUpdatingLocation];
Às vezes isso funciona, às vezes não. Eu até criei um cronômetro para repetir isso a cada mais ou menos segundos, e isso não funciona.
Há algo mais que devo fazer? Existe alguma resposta para esse problema?
Obrigado.