So erhalten Sie die aktuelle geografische Breite und Länge in IOS SDK 8.0

8

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.

    
KkMIW 01.10.2014, 18:22
quelle

4 Antworten

5

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];

    
KkMIW 04.10.2014 11:25
quelle
3

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:

  1. Fügen Sie einen Schlüssel zu Ihrer Info.plist hinzu
  2. Autorisierung anfordern vom Standortmanager, der ihn auffordert zu starten.

Eine oder beide der folgenden Tasten müssen in der Info.plist-Datei hinzugefügt werden.

  1. NSLocationWhenInUseUsageDescription
  2. NSLocationAlwaysUsageDescription

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:

  1. [self.locationManager requestWhenInUseAuthorization]
  2. [self.locationManager requestAlwaysAuthorization]
Jayprakash Dubey 12.02.2015 07:17
quelle
0

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.

    
Rob 01.10.2014 18:39
quelle
0

Es scheint, dass wir noch einige Aufgaben erledigen müssen, um Location Services in ios8 zu implementieren. Folgen Sie dieser Diskussion

    
Samin 01.10.2014 19:00
quelle