Fondamentalmente metà del tempo metodo delegatoCLLocationManager non funziona tutto il tempo (IOS 8, Xcode 6)
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations;
non si chiama affatto. Ma l'altra metà del tempo funziona perfettamente! Ho scoperto che di solito accade quando avvio Xcode per la prima volta dopo la chiusura e quando esco, ma dopo di ciò o dopo un paio di correzioni, sembra funzionare bene. Non sono sicuro al 100% se si tratti solo di un problema Xcode o di cosa, presto riceverò la licenza di uno sviluppatore, quindi vedrò se funzionerà correttamente su un dispositivo reale.
Partendo dal viewDidAppear (provato in viewDidLoad anche, non faceva differenza), ho eseguito un metodo per init mia roba 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];
A volte funziona, a volte no. Ho persino fatto un timer per ri-eseguire questo ogni secondi così e così, e questo non funziona.
C'è qualcos'altro che dovrei fare? C'è qualche risposta a questo problema?
Grazie.
Il responsabile della localizzazione ha proprio lo scopo di funzionare su un dispositivo. Nel simulatore, hai provato a impostare la posizione? – Milo
Cosa intendi per * metà del tempo *? 'didUpdateLocations' viene chiamato quando il sistema operativo ha aggiornamenti di posizione da consegnare. A volte lo fa, altre volte (meno spesso) no. – Mike
Poche cose, si ha "NSLocationAlwaysUsageDescription" aggiunto al proprio file info.plist dell'app? Due hai impostato una posizione nel simulatore? (Debug-> Location) – TyloBedo