web-dev-qa-db-fra.com

didFailWithError: Domaine d'erreur = Code kCLErrorDomain = 0 "L'opération n'a pas pu être terminée. (erreur kCLErrorDomain 0.)"

Je veux obtenir l'emplacement actuel, mais j'obtiens une erreur.

Ceci est un extrait de mon contrôleur de vue.

- (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);
}

Je m'attends à ce que la méthode déléguée locationManager:didUpdateLocations: soit appelée, mais au lieu de cela, seul locationManager:didFailWithError: est appelé et affiche ceci:

didFailWithError: Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)" 
73
Luca
  1. Vérifiez que vous disposez bien d'une connexion WiFi et 3G valide

    ... si vous le faites, alors:

  2. Accédez aux paramètres et réinitialisez vos services de localisation. 

  3. Réinitialiser vos paramètres réseau

Cela devrait régler ce problème. Il est lié à un appareil/réseau et non à une application. C'est gênant, surtout si votre application dépend de services de localisation et que l'appareil utilise uniquement le WiFi et que les utilisateurs attribuent des avis négatifs sur l'AppStore ... Pardon, je commence à être un peu ému.

101
MeM

Si vous utilisez le simulateur:

  1. Appuyez sur command + shift + , dans Xcode pour ouvrir l'éditeur de schéma.
  2. Sélectionnez le schéma d'exécution
  3. Aller sur l'onglet Options
  4. Vérifier ✅ Allow Location Simulation
  5. Sélectionnez un emplacement par défaut dans la liste déroulante 

La sélection de None comme emplacement par défaut peut être à l'origine du problème.

127
silentBeep

Ignorez simplement cette erreur et attendez plus de mises à jour ou une autre erreur.

Les documents du responsable de la localisation indiquent que cette erreur est temporaire. Cela vous permet de savoir qu'il n'a pas réussi à récupérer immédiatement un emplacement, mais il continue d'essayer. "Dans une telle situation, vous pouvez simplement ignorer l'erreur et attendre un nouvel événement." Ce qui est une façon vraiment abrupte d’utiliser une méthode nommée locationManager:didFailWithError: - Merci Apple!

Apple Documentation

21
Ray Lillywhite

Essayez de redémarrer le simulateur (en supposant que c'est ce que vous utilisez). 

Après avoir tout essayé, cela a fonctionné pour moi.

18
Ian

Un redémarrage du simulateur n'a pas fonctionné pour moi. 

Je devais tout effacer via "iOS Simulator" >> "Reset Content and Settings....

14
Brandon O'Rourke

Je recevais cette erreur sur le simulateur. En cliquant sur le bouton d'emplacement dans le panneau de débogage et en définissant un emplacement, le problème a été résolu pour moi. (Assurez-vous que le bouton est bleu)

enter image description here

9
rounak

J'ai le même problème. Je crois que les explications/corrections possibles sont couvertes dans ce SO post .

7
Andy Milburn

Changer le "Lieu" sur le simulateur a fonctionné pour moi.

Débogage> Lieu> (le mien a été coché Aucun au lieu de City Bicycle Ride Par exemple)

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

En supposant que vous utilisiez le simulateur, vous pouvez Debug -> Location et définir un emplacement.

Si vous n'avez pas sélectionné, vous aurez cette erreur. 

3
Rodrigo Gonzalez

Si vous utilisez un custom location, assurez-vous que vous avez le long et le long du bon sens, je l’avais inversé et perdu 3 heures avant de me rendre compte ...

2
Joe Maher

J'ai déjà vu le problème auparavant, il existe un moyen de le résoudre, mais cela ne peut fonctionner qu'une seule fois. Si vous souhaitez réexécuter le projet et que vous devez répéter la solution à chaque fois.

1.Dans Xcode, Product -> Scheme -> Edit Scheme, puis annulez le "Autoriser le simulateur d'emplacement".

2.Dans le simulateur iOS et réinitialisez le contenu et les paramètres.

3.Avec le Xcode, répétez la première étape.

4.Pour le simulateur iOS et réinitialiser. Alors ça va marcher.

2
HsuChihYung

Des problèmes de ce type peuvent être résolus en définissant l'emplacement sur "Apple". Au moins cela fonctionne à des fins de test.

1
Pandurang Yachwad

Pour les devs retournés :) Il suffit de sélectionner "Debug->Location->Freeway Drive" dans le menu Simulator. Si le problème persiste, essayez après "Simulateur-> Réinitialiser le contenu et les paramètres" dans le menu du simulateur. Cela m'a aidé une fois avec le même problème. Certains emplacements de simulateur de temps sont définis sur "Custom location", ce qui explique leur non-détection.

1
SaffronState
  1. J'ai réinitialisé le contenu et les paramètres.
  2. Suppression des données des données dérivées. 
  3. Redémarrage du Xcode et du simulateur et travail pour moi.

de la réponse de @Mem et bien d'autres merci

1
Arpit B Parekh

Aller à la maison en simulateur

accueil -> Paramètres -> Confidentialité -> Emplacements -> sélectionnez l'application et choisissez toujours

0
Pratheesh B

Essayez dans l'appareil. Parfois, le simulateur ne parvient pas à prendre votre position.

0
Subho

lors de l'ajout de l'autorisation Confidentialité - Emplacement en cours d'utilisation Description d'utilisation dans le fichier info.plist résolu pour moi

0
miguelamgo