Errore del gestore delle posizioni: (errore 0 di KCLErrorDomain)


95
Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)

Perché si verifica questo errore?


buona domanda: a volte ho visto lo stesso errore. Credo che accada quando il gestore della posizione non riesce a ottenere la posizione corrente, ad esempio perché non è disponibile una soluzione sufficientemente buona. Ma, l'ho visto a volte dopo aver ottenuto una buona soluzione, quindi in seguito viene visualizzato questo errore.
frankodwyer

1
Per me è stato, che avevo usato una virgola invece di un punto per il separatore decimale della posizione personalizzato.
electronix384128

Stavo riscontrando lo stesso problema, imposta la precisione su kCLLocationAccuracyBest o su un valore elevato, ignora l'errore e attendi ulteriori aggiornamenti.
zaheer

Risposte:


163

Questo errore si verifica se hai Scheme/Edit Scheme/Options/Allow Location Simulationselezionato ma non hai impostato un percorso predefinito. Sono sicuro che ci sono anche altre cause.


1
Grazie, ma la mia domanda è se impostiamo la posizione predefinita influisce sull'aggiornamento della posizione del dispositivo?
sKhan

@ ShafKhan Non rispondere alle domande nei commenti. Fallo come una nuova domanda.
Undistraction

9
Se ti stai chiedendo dove sia SCHEME segui questo link developer.apple.com/library/mac/recipes/…
Bishal Ghimire

Dovevo ancora "Reimpostare contenuto e impostazioni" per convincere il delegato a chiamare didUpdate invece di didFail dopo aver impostato una posizione predefinita nell'editor di schemi. Poi ha funzionato bene.
owenfi

Questo risolve totalmente il mio problema! Grazie mille.
Ifelere Bolaji

42

AGGIORNARE

GRAZIE A Ben Marten Puoi renderlo permanente usando questi passaggi in XCode:

  1. Prodotto> Schema> Modifica schema
  2. Fare clic su Esegui .app
  3. Scheda delle opzioni
  4. Posizione principale già selezionata> seleziona la tua posizione
  5. premere OK

Oltre a ciò, anche se non sei connesso al wifi, puoi impostare una posizione nel simulatore tramite le voci di menu in alto Debug>Locatione per renderlo permanente segui i passaggi precedenti

errore di posizione nel simulatore ios


1
Per renderlo permanente, in Xcode: Prodotto / Schema / Modifica schema ... / Esegui / Opzioni / Posizione principale - Seleziona "Consenti simulazione posizione" e imposta "Posizione predefinita" su "Nessuno"
electronix384128

1
Sì, funziona. Grazie mille 😃👍😄😃👌👏💃🙏💃💃. Modifica la mia domanda per una maggiore conoscenza :)
Vaibhav Saran

33

Ho appena avuto questo problema. Mi ci è voluto un po 'per trovare la soluzione, che è solo vagamente correlata alla risposta del poster precedente.

L'aeroporto (WiFi) deve essere attivato affinché CoreLocation nel simulatore iPhone / iPad funzioni. Ero connesso via Ethernet, quindi CL non ha fatto nulla nel simulatore. Attiva Airport nelle impostazioni di rete e riprova. Puoi modificare l'ordine delle interfacce di rete trascinando Airport sotto Ethernet se desideri continuare a favorire la tua connessione cablata rispetto al wireless ...


2
Ho questo errore e il mio computer è connesso a Internet tramite WiFi. Inoltre, se non sbaglio, il simulatore non risolve la posizione, utilizza sempre la posizione di Apple Office. Quando si utilizza il framework MapKit, viene visualizzato il punto blu, quindi la posizione è impostata. Non ha molto senso.
Alex Angelico

1
L'ho appena acceso, non è il primo nel mio elenco di reti e tutto ha iniziato a funzionare (Lion, XC 4.2)
David H

1
Ho avuto lo stesso problema, ma non sul simulatore, sul dispositivo! (iPhone 5S, iOS 8.1.3). Stavo eseguendo il debug di un'applicazione con MapKit e CoreLocation ed entrambi i framework restituivano sempre lo stesso errore. Fino a quando non ho acceso il Wifi! Grazie :)
Vinzzz

13

Dai documenti dell'API:

CLError

Codici di errore restituiti dall'oggetto location manager.

typedef enumerazione {kCLErrorLocationUnknown = 0, kCLErrorDenied, kCLErrorNetwork, kCLErrorHeadingFailure} CLError;

Costanti

kCLErrorLocationUnknown Il gestore della posizione non è stato in grado di ottenere un valore di posizione in questo momento. Disponibile in iPhone OS 2.0 e versioni successive. Dichiarato in CLError.h.

kCLErrorDenied L'accesso al servizio di localizzazione è stato negato dall'utente. Disponibile in iPhone OS 2.0 e versioni successive. Dichiarato in CLError.h.

kCLErrorNetwork La rete non era disponibile o si è verificato un errore di rete. Disponibile in iPhone OS 3.0be versioni successive. Dichiarato in CLError.h.

kCLErrorHeadingFailure Non è stato possibile determinare l'intestazione. Disponibile in iPhone OS 3.0 e versioni successive. Dichiarato in CLError.h.

Quindi questo significa che non è stato possibile determinare la posizione.

Immagino che la causa più probabile sia che il gestore della posizione utilizzi il WiFi per triangolare la posizione e il database non copre le reti locali. Apparentemente può essere risolto dall'utente se va qui .

Tuttavia, come ho notato, ho anche visto questo occasionalmente come un errore temporaneo durante l'esecuzione di un programma basato sulla posizione in un luogo in cui normalmente funziona la posizione del WiFi.

Infine immagino che sia possibile vedere questo errore se c'è qualche tipo di guasto hardware.


4
Chiede di: KCLErrorDomain
electronix384128

Non vi è alcun riferimento a kCLErrorDomain in questa risposta che è ciò che l'OP sta cercando.
Norman H

5

1) verifica di avere effettivamente una connessione WiFi e 3G valida

se lo fai allora

2) vai alle impostazioni e ripristina i servizi di localizzazione 3) ripristina le impostazioni di rete


Continuo a non capire perché non riesco a ottenere la posizione senza Wi-Fi o 3G su iPad durante il test, perché il GPS non viene utilizzato? Quindi l'utente sul dispositivo non può ottenere la posizione senza Internet? Sto lavorando anche all'app in modalità offline ...
Renetik

Per quanto ne so il GPS non necessita di connessione internet o wifi, è solo un ricevitore se è in posizione accessibile con 2 o 3 satelliti GPS possiamo ottenere le coordinate di geolocalizzazione Dobbiamo preoccuparci della connessione internet solo se le GeoInformation sono necessarie per qualsiasi attività online come Google Maps che dipende da Internet per mostrare le posizioni delle mappe che non sono memorizzate nella cache locale. Le applicazioni di navigazione dedicate come CoPilot mantengono le mappe a bordo.
Durai Amuthan.H

3

Questo errore viene generato quando Location Manager non è in grado di ottenere immediatamente le informazioni sulla posizione. Ho scoperto che questo errore si verificava quando è stato chiamato il metodo startUpdatingLocation. Per me, questo stava accadendo su iPod ma non su iPhone. Ciò ha senso, dal momento che l'iPhone ha più modi (come la rete cellulare) per ottenere informazioni sulla posizione ed è in grado di ottenere una stima rapida della posizione mentre l'iPod impiega più tempo, il che ha causato la segnalazione di questo errore su iPod.

Poiché, quando viene generato questo errore locationManager: didFailWithError: viene chiamato il metodo delegato, è possibile gestire questo caso specifico in un'istruzione condizionale abbinando "[dominio errore]" e "[codice errore]" dall'oggetto errore passato a questo metodo.


3

Il motivo esatto che ho trovato è che si verifica un conflitto nella simulazione della posizione sia nel simulatore ios "Impostazioni di debug" che nelle impostazioni di xcode "Modifica schemi". Assicurati di impostare la tua posizione utente predefinita in uno qualsiasi di questi e seleziona l'altro a Nessuno ha risolto il problema sperando che questo potrebbe aiutare di sicuro. InXcode:inserisci qui la descrizione dell'immagine

Nel simulatore di iphone / ipad:inserisci qui la descrizione dell'immagine


3

Se hai questo in Emulator, fai quanto segue

Debug > Location >  Apple

istruzioni dell'emulatore


1

Puoi aggiungere il tuo elenco di posizioni a Xcode per testare le tue applicazioni.

Dall'interno di Xcode seleziona il menu Debug / Simula posizione e ti verrà offerto:

a. "Don't Simulate Location"
b. 12 example locations
c. "Add GPX File to Project..."

Seleziona "Aggiungi file GPX al progetto ..." e seleziona il file GPX che hai creato.


0

Vai a progetto Xcode> prodotto> schema> modifica schema> verifica simulazione posizione> imposta la tua posizione> ed esegui di nuovo l'app Spero che funzioni!


0

Grazie a questo articolo ( https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/ ) ho avuto un suggerimento per guardare i dati sul mio file GPX personalizzato e lì ho trovato il problema.

Alcuni file GPX che potresti ottenere da fonti diverse potrebbero avere i seguenti elementi che indicano le diverse coordinate nel percorso specificato. Questo non funzionerà con la simulazione della posizione di Xcode.

<gpx>
...
<trkpt lat="" lon="">
<ele></ele>
</trkpt>
...
</gpx>

Quello che dovresti fare è trovare tutte le occorrenze dell'elemento "trkpt" e sostituirlo con "wpt" nel tuo editor di testo / xml preferito. Il risultato finale dovrebbe essere il seguente:

<gpx>
<wpt lat="" lon="">
<ele></ele>
</wpt>
...
</gpx>

Spero che questo ti aiuti! Sicuramente mi ha aiutato.


0

Questo errore si verifica mentre esegui il programma, ma simuli la posizione dopo aver eseguito il programma.

Ho un metodo: esci dal simulatore e riavvialo, quindi imposta la posizione del simulatore prima di eseguire il programma e per me funziona.

Spero che questo ti aiuti! Sicuramente mi ha aiutato. Grazie...


0

tutto questo non ha funzionato per me .. quello che ha funzionato per me è: - impostare la posizione dal simulatore per nonepoi cambiarla di nuovo in customposizione mentre l'app è in esecuzione.


0

Tutti i suggerimenti non hanno aiutato nel mio caso. Ciò che ha aiutato è stato disinstallare l'app dal dispositivo simulatore, reinstallarla e consentirle di accedere alla posizione (nell'app delle impostazioni).


-1

Se lo ricevi sul dispositivo, è probabile che tu non l'abbia chiesto o che l'utente abbia negato il permesso di raccogliere la posizione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.