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.)"
Antworten:
Überprüfen Sie, ob Sie tatsächlich über eine gültige WLAN- und 3G-Verbindung verfügen
... wenn ja, dann:
Gehen Sie zu Einstellungen und setzen Sie Ihre Ortungsdienste 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.
quelle
Wenn Sie den Simulator verwenden:
command + shift + ,
Xcode, um den Schema-Editor zu öffnenAllow Location Simulation
Die Auswahl
None
als Standardspeicherort hat möglicherweise das Problem verursacht.quelle
iOS Simulator
>Reset Content and Settings...
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
quelle
Starten Sie den Simulator neu (vorausgesetzt, Sie verwenden ihn).
Nachdem ich alles andere ausprobiert hatte, funktionierte das für mich.
quelle
Ein Neustart des Simulators hat bei mir nicht funktioniert.
quelle
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)
quelle
Ich habe das gleiche Problem. Ich glaube, die möglichen Erklärungen / Korrekturen werden in diesem SO-Beitrag behandelt .
quelle
Das Ändern des "Standorts" im Simulator hat bei mir funktioniert.
quelle
quelle
Angenommen, Sie verwenden den Simulator, können Sie
Debug -> Location
einen Ort festlegen und festlegen.Wenn Sie keine ausgewählt haben, wird dieser Fehler angezeigt.
quelle
Wenn Sie eine verwenden,
custom location
stellen Sie sicher, dass Sie die lange und die richtige Länge haben, ich hatte es umgekehrt und verschwendet 3 Stunden, bevor ich realisierte ...quelle
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.
quelle
Probleme wie dieses können behoben werden, indem der Speicherort auf "
Apple
" gesetzt wird. Zumindest funktioniert es zu Testzwecken.quelle
von der Antwort von @Mem und vielen anderen danke
quelle
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.quelle
Wenn Sie den Simulator verwenden, stellen Sie sicher, dass das Schema den Standort zulässt, und wählen Sie einen Standardspeicherort aus.
quelle
Versuchen Sie es im Gerät. Manchmal kann der Simulator Ihren Standort nicht ermitteln.
quelle
Gehe im Simulator nach Hause
home -> Einstellungen -> Datenschutz -> Standorte -> App auswählen und immer auswählen
quelle
beim Hinzufügen von Berechtigungen Datenschutz - Speicherort bei Verwendung Verwendung Beschreibung in der info.plist wurde für mich gelöst
quelle