2015-07-28 15 views

risposta

22

Le altre risposte non sono corrette. Puoi richiedere la posizione direttamente sull'orologio per guardare OS2. Il metodo disponibile è chiamato requestLocation. Ti consente di richiedere un singolo aggiornamento di posizione.

E.g.

#import <CoreLocation/CoreLocation.h> 
@interface className : WKInterfaceController<CLLocationManagerDelegate> 

Allora dove si desidera richiedere posizione:

self.locationManager = [CLLocationManager new]; 
self.locationManager.delegate = self; 
[self.locationManager requestWhenInUseAuthorization]; 
[self.locationManager requestLocation]; 

Poi si aprirà una singola richiamata in uno dei seguenti metodi CLLocationManagerDelegate.

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations { 
    // Callback here with single location if location succeeds 
} 

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error { 
    // Error here if no location can be found 
} 

vedere il video WWDC15 "Novità di Core Location" - https://developer.apple.com/videos/wwdc/2015/?id=714

Imgur

+0

Ah, grazie per averlo menzionato. Non lo sapevo .. – Ben

+1

Grazie! Ma è importante ricordare che questo non funziona in ExtensionDelegate. In un "WKInterfaceController" funziona perfettamente. – Blankarsch

+0

@Blankarsch C'è qualche ragione per cui questo è il caso? Cosa succede se abbiamo bisogno di un gestore centrale indipendente dall'interfaccia utente? – TealShift