didFailWithError: Error Domain = kCLErrorDomain Code = 0 „Der Vorgang konnte nicht abgeschlossen werden. (kCLErrorDomain-Fehler 0.) ”

82

Ich möchte den aktuellen Standort abrufen, erhalte jedoch eine Fehlermeldung.

Dies ist ein Ausschnitt aus meinem View Controller.

- (void)viewDidLoad {
    self.locationManager = [[CLLocationManager alloc] init];
    [locationManager setDelegate:self];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyNearestTenMeters];
    [locationManager startUpdatingLocation];
}

- (void)locationManager:(CLLocationManager *)manager 
     didUpdateLocations:(NSArray<CLLocation *> *)locations {
    // I would get the latest location here
    // but this method never gets called
}
- (void)locationManager:(CLLocationManager *)manager 
       didFailWithError:(NSError *)error {
    NSLog(@"didFailWithError: %@", error);
}

Ich erwarte, dass die Delegate-Methode locationManager:didUpdateLocations:aufgerufen wird, aber stattdessen nur locationManager:didFailWithError:aufgerufen wird und Folgendes ausgibt:

didFailWithError: Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)" 
Luca
quelle
Sie können alternativ eine Google-API verwenden. Siehe meine Antwort hier stackoverflow.com/a/40670608/2033377
Deepak Thakur

Antworten:

106
  1. Überprüfen Sie, ob Sie tatsächlich über eine gültige WLAN- und 3G-Verbindung verfügen

    ... wenn ja, dann:

  2. Gehen Sie zu Einstellungen und setzen Sie Ihre Ortungsdienste zurück

  3. Setzen Sie Ihre Netzwerkeinstellungen zurück

Dies sollte sich um dieses Problem kümmern. Es ist geräte- / netzwerkbezogen, nicht appbezogen. Es ist besonders ärgerlich, wenn Ihre App von Ortungsdiensten abhängig ist und das Gerät nur über WLAN verfügt und die Leute im AppStore negative Bewertungen abgeben ... Verzeihung, ich werde dort ein bisschen emotional.

MeM
quelle
2
Soweit ich weiß, benötigt GPS weder eine Internet- noch eine WLAN-Verbindung. Es ist nur ein Empfänger, wenn es sich an einem zugänglichen Ort mit 2 oder 3 GPS-Satelliten befindet, können wir die geografischen Standortkoordinaten abrufen. Warum tritt dann der Fehler auf, wenn dies der Fall ist? Keine Internet- oder WLAN-Verbindung?
Durai Amuthan.H
2
Eine Gegenstimme für das Zurücksetzen von Ortungsdiensten und Netzwerkeinstellungen
Durai Amuthan.H
3
Sie sollten diese Schritte nicht ausführen müssen. Ignorieren Sie diesen Fehler einfach und warten Sie auf weitere Updates. Siehe meine Antwort unten oder sehen Sie sich die Dokumente unter developer.apple.com/library/ios/documentation/corelocation/… an :
Ray Lillywhite
3
Ich hatte genau das gleiche Problem beim Spielen mit MapKit & CoreLocation auf meinem Gerät (iPhone 5S, iOS 8.1.3). Ich konnte keinen Standort finden und bekam immer wieder den gleichen Fehler (trotz eines guten Mobilfunksignals). Bis ich das WiFi einschaltete und alles repariert war! Seltsam ... Danke!
Vinzzz
2
@ DuraiAmuthan.H iPads haben keine aktuelle GPS-Hardware. Sie verwenden eine Datenbank mit WLAN-MAC-Adressen, um Ihren Standort zu bestimmen.
whoKnows
146

Wenn Sie den Simulator verwenden:

  1. Drücken Sie command + shift + ,Xcode, um den Schema-Editor zu öffnen
  2. Wählen Sie das Ausführungsschema
  3. Gehen Sie zur Registerkarte Optionen
  4. Überprüfen Sie ✅ Allow Location Simulation
  5. Wählen Sie in der Dropdown-Liste einen Standardspeicherort aus

Die Auswahl Noneals Standardspeicherort hat möglicherweise das Problem verursacht.

sKhan
quelle
4
Beeindruckend! Danke, ich habe das seit Wochen verfolgt. Meine App zwang mein iPad oder iPhone immer wieder nach London, England, und ich konnte nicht herausfinden, warum. Ich habe diese Option deaktiviert und das Problem ist behoben. Möglicherweise hatte es einen Schluckauf, der den Standort ergriff und dann losging und den Standort in den im Schema angegebenen änderte.
Andrew Smith
7
Arbeitete für mich, aber ich musste auch iOS Simulator>Reset Content and Settings...
Bendytree
Genagelt es für mich.
ScottyBlades
23

Ignorieren Sie diesen Fehler einfach und warten Sie auf weitere Updates oder einen anderen Fehler.

In den Dokumenten für den Standortmanager wird angegeben, dass dieser Fehler nur vorübergehend ist. Sie werden darüber informiert, dass ein Standort nicht sofort abgerufen werden konnte, es wird jedoch weiterhin versucht. "In einer solchen Situation können Sie den Fehler einfach ignorieren und auf ein neues Ereignis warten." Welches ist ein wirklich knochiger Weg, um eine Methode namens locationManager:didFailWithError:- Danke Apple!

Apple Documentation

Ray Lillywhite
quelle
18

Starten Sie den Simulator neu (vorausgesetzt, Sie verwenden ihn).

Nachdem ich alles andere ausprobiert hatte, funktionierte das für mich.

Ian
quelle
Arbeitete für mich. Danke
Sushil Sharma
14

Ein Neustart des Simulators hat bei mir nicht funktioniert.

Ich musste alles über klären "iOS Simulator" >> "Reset Content and Settings....

Brandon O'Rourke
quelle
9

Ich habe diesen Fehler im Simulator erhalten. Durch Klicken auf die Schaltfläche "Standort" im Debugging-Bereich und Festlegen eines Speicherorts wurde das Problem für mich behoben. (Stellen Sie sicher, dass die Schaltfläche blau ist)

Geben Sie hier die Bildbeschreibung ein

rounak
quelle
5

Das Ändern des "Standorts" im Simulator hat bei mir funktioniert.

Debug> Ort> (Meins wurde aktiviert. Keine anstelle von City Bicycle Ride, z.

Raphael Onofre
quelle
5
  1. Gehen Sie im Simulator zu Einstellungen> Allgemein> Zurücksetzen> Standort und Datenschutz zurücksetzen

  2. Beenden Sie den Simulator und führen Sie die App erneut aus

Adam Johns
quelle
3

Angenommen, Sie verwenden den Simulator, können Sie Debug -> Locationeinen Ort festlegen und festlegen.

Wenn Sie keine ausgewählt haben, wird dieser Fehler angezeigt.

Rodrigo Gonzalez
quelle
2

Wenn Sie eine verwenden, custom locationstellen Sie sicher, dass Sie die lange und die richtige Länge haben, ich hatte es umgekehrt und verschwendet 3 Stunden, bevor ich realisierte ...

Joe Maher
quelle
Ame hier habe ich auch 2 Stunden verschwendet, den Längen- und Breitengrad in die richtigen Positionen gebracht.
Arpit B Parekh
2

Ich habe das Problem bereits gesehen, es gibt eine Möglichkeit, es zu lösen, aber es kann nur einmal funktionieren. Wenn Sie das Projekt erneut ausführen möchten und die Lösung jedes Mal wiederholen müssen.

1. In Xcode, Produkt -> Schema -> Schema bearbeiten, brechen Sie den "Allow Location Simulator" ab.

2.Zum iOS Simulator und zurücksetzen von Inhalt und Einstellungen.

3.Wieder zum Xcode, wiederholen Sie den ersten Schritt.

4.Zum iOS Simulator und zurücksetzen. Dann wird es funktionieren.

HsuChihYung
quelle
1

Probleme wie dieses können behoben werden, indem der Speicherort auf " Apple" gesetzt wird. Zumindest funktioniert es zu Testzwecken.

Pandurang Yachwad
quelle
1
  1. Ich habe Inhalte und Einstellungen zurückgesetzt.
  2. Daten aus abgeleiteten Daten entfernt.
  3. Xcode und Simulator neu gestartet und für mich gearbeitet.

von der Antwort von @Mem und vielen anderen danke

Arpit B Parekh
quelle
1

Für zurückgegebene Entwickler :) Wählen Sie einfach " Debug->Location->Freeway Drive" aus dem Simulator-Menü. Wenn das Problem weiterhin besteht, versuchen Sie es, nachdem Sie "Simulator-> Inhalt und Einstellungen zurücksetzen" im Simulatormenü ausgeführt haben. Dies hat mir einmal mit dem gleichen Problem geholfen. Die Position des Zeitsimulators wird auf " Custom location" gesetzt, wodurch nichts erkannt wird.

Safranstaat
quelle
1

Wenn Sie den Simulator verwenden, stellen Sie sicher, dass das Schema den Standort zulässt, und wählen Sie einen Standardspeicherort aus.

Geben Sie hier die Bildbeschreibung ein

Tal Zion
quelle
0

Versuchen Sie es im Gerät. Manchmal kann der Simulator Ihren Standort nicht ermitteln.

Subho
quelle
0

Gehe im Simulator nach Hause

home -> Einstellungen -> Datenschutz -> Standorte -> App auswählen und immer auswählen

Pratheesh B.
quelle
0

beim Hinzufügen von Berechtigungen Datenschutz - Speicherort bei Verwendung Verwendung Beschreibung in der info.plist wurde für mich gelöst

Miguelzolk
quelle