it-swarm.com.de

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

Ich möchte den aktuellen Standort abrufen, bekomme aber stattdessen 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 Delegat-Methode locationManager:didUpdateLocations: aufgerufen wird, aber stattdessen wird nur locationManager:didFailWithError: aufgerufen und es gibt Folgendes aus:

didFailWithError: Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)" 
73
Luca
  1. Vergewissern Sie sich, dass Sie über eine gültige WLAN- und 3G-Verbindung verfügen

    Wenn ja, dann:

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

  3. Setzen Sie Ihre Netzwerkeinstellungen zurück

Dies sollte sich um dieses Problem kümmern. Es bezieht sich auf Geräte/Netzwerke, nicht auf Apps. Es ist ärgerlich, vor allem wenn Ihre App von Standortdiensten abhängig ist und das Gerät nur WLAN ist und die Menschen negative Bewertungen im AppStore abgeben ... Verzeihung, ich bin etwas emotional.

101
MeM

Wenn Sie den Simulator verwenden:

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

Die Auswahl von None als Standardspeicherort hat das Problem möglicherweise verursacht.

127
silentBeep

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

Die Dokumente für den Standortmanager geben an, dass dieser Fehler temporär ist. Dadurch wird Ihnen mitgeteilt, 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." Dies ist eine wirklich knackige Methode, eine Methode namens locationManager:didFailWithError: zu verwenden - Danke, Apple!

Apple Documentation

21
Ray Lillywhite

Versuchen Sie, den Simulator neu zu starten (vorausgesetzt, Sie verwenden dies). 

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

18
Ian

Ein Neustart des Simulators hat bei mir nicht funktioniert. 

Ich musste alles per "iOS Simulator" >> "Reset Content and Settings... löschen.

14

Ich habe diesen Fehler auf dem Simulator erhalten. Durch Klicken auf die Schaltfläche "Ort" im Debugging-Fenster und Festlegen eines Speicherorts wurde das Problem behoben. (Stellen Sie sicher, dass die Schaltfläche blau ist.)

enter image description here

9
rounak

Ich habe das gleiche Problem. Ich glaube, die möglichen Erklärungen/Fixes werden abgedeckt in diesem SO Post .

7
Andy Milburn

Das Ändern des "Standortes" auf dem Simulator hat für mich funktioniert.

Debuggen> Standort> (Meines wurde ausgewählt, Keine anstelle von City Bicycle Ride Zum Beispiel)

5
Raphael Onofre
  1. In the simulator go to Settings > General > Reset > Reset Location & Privacy

  2. Quit simulator and run app again

5
Adam Johns

Vorausgesetzt, Sie verwenden den Simulator, können Sie Debug -> Location und einen Ort festlegen.

Wenn Sie keine Auswahl getroffen haben, wird dieser Fehler angezeigt. 

3

Wenn Sie einen custom location verwenden, stellen Sie sicher, dass Sie die richtige Länge und Länge haben, ich hatte es umgekehrt und 3 Stunden verschwendet, bevor mir klar wurde ...

2
Joe Maher

Ich habe das Problem schon einmal 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, müssen Sie die Lösung jedes Mal wiederholen.

1.Stellen Sie in Xcode Product -> Scheme -> Edit Scheme den "Allow Location Simulator" ein.

2.Um den iOS-Simulator zurückzusetzen und Inhalt und Einstellungen zurückzusetzen.

3. Wiederholen Sie den Xcode und wiederholen Sie den ersten Schritt.

4.An den iOS-Simulator und zurücksetzen. Dann wird es klappen.

2
HsuChihYung

Probleme wie dieses können durch Festlegen des Speicherorts als "Apple" behoben werden. Zumindest funktioniert es zu Testzwecken.

1

Für zurückgegebene Devs :) Wählen Sie einfach "Debug->Location->Freeway Drive" aus dem Simulator-Menü. Wenn das Problem weiterhin besteht, versuchen Sie es nach dem Ausführen von "Simulator-> Inhalt und Einstellungen zurücksetzen" im Simulatormenü. Das hat mir mal beim gleichen Thema geholfen. Der Standort des Simulators ist zu einem bestimmten Zeitpunkt auf "Custom location" eingestellt, wodurch er nichts erkennt.

1
SaffronState
  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.

aus der antwort von @Mem und vielen anderen danke

1
Arpit B Parekh

Im Simulator nach Hause gehen

startseite -> Einstellungen -> Datenschutz -> Standorte -> Wählen Sie die App und wählen Sie immer

0
Pratheesh B

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

0
Subho

beim Hinzufügen der Berechtigung Datenschutz - Speicherort bei Verwendung Verwendungsbeschreibung in der info.plist wurde es für mich gelöst

0
miguelamgo