wie man den aktuellen Standort-Breiten- und Längengrad erhält.
Ich habe es versucht. Verwenden von Xcode 6.01 und IOS SDK 8.0
%Vor%Hier aktiviere ich den Standort des Simulators für Deployment 8.0 iPhone Simulator 4s. Sogar auf dem Gerät funktioniert es nicht.
@ALL Bitte lassen Sie mich wissen, was ich hier falsch gemacht habe.
Ich finde es Problem in IOS 8.0
NSLocationAlwaysUsageDescription Fügen Sie dies manuell in die Anwendung plist file ein, lassen Sie den Wert string leer. Dies wird die Delegate Methoden aufrufen. Vergessen Sie nie, NSLocationAlwaysUsageDescription hinzuzufügen, wenn Sie diese Delegate-Methode nicht hinzugefügt haben. Verbleibender Code ist gleich. Hinzufügen von Delegate-Methoden zur Controller-Klasse.
Fügen Sie diese Codezeile im locationManager-Deklarationscode hinzu. für IOS 8.0 [locationManager requestAlwaysAuthorization];
In iOS 8 schlägt dieser Code automatisch fehl , dh Sie erhalten keine Fehlermeldung oder Warnung.
Sie müssen zwei zusätzliche Dinge tun, um den Standort zu erhalten:
Eine oder beide der folgenden Tasten müssen in der Info.plist-Datei hinzugefügt werden.
Diese sind vom String-Typ und der Wert kann eine beliebige Nachrichtenbeschreibung oder leer sein.
Nun müssen Sie die Berechtigung für die entsprechende Standortmethode anfordern. Verwenden Sie einen der folgenden Anrufe:
Ja, der Simulator bietet eine übermäßig vereinfachte Wiedergabe von Ortungsdiensten. Ein physikalisches Gerät ist die einzige Möglichkeit, CLLocationManager
behavior wirklich zu testen.
Das Problem ist, dass wenn Sie startUpdatingLocation
aufrufen, dies nicht bedeutet, dass Sie sofort location
abrufen können. (Ich denke, Sie finden es entweder nil
oder hat eine negative horizontalAccuracy
, was bedeutet, dass der Standort noch nicht festgelegt wurde.)
Sie müssen dem CLLocationManagerDelegate
entsprechen und locationManager:didUpdateLocations:
implementieren, das asynchron aufgerufen wird. Sie müssen also warten, bis diese Methode aufgerufen wird, bevor Sie versuchen, die Standortinformationen zu verwenden. Beachten Sie, dass diese Methode auf einem echten Gerät wahrscheinlich mehrmals aufgerufen wird, da das Gerät die Informationen zum Gerätestandort mit zunehmender Genauigkeit verfeinert (z. B. kann die horizontalAccuracy
-Nummer von einem Standortupdate auf einen anderen fallen).
Offensichtlich möchten Sie wahrscheinlich auch locationManager:didFailWithError:
implementieren, damit Probleme erkannt werden können. Sie sollten auch authorizationStatus
, locationServicesEnabled
und requestWhenInUseAuthorization
überprüfen, bevor Sie startUpdatingLocation
aufrufen.
Es scheint, dass wir noch einige Aufgaben erledigen müssen, um Location Services in ios8 zu implementieren. Folgen Sie dieser Diskussion
Tags und Links ios8 core-location cllocationmanager cllocation currentlocation