Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

248
Visualizações
¿Cómo obtener correctamente las coordenadas del usuario?

Hago que MapViewController adopte el protocolo CLLocationManagerDelegate esta manera:

 extension MapViewController:CLLocationManagerDelegate{ func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { let usrLocation:CLLocation = locations[0] as CLLocation // readable print("lat = \(usrLocation.coordinate.latitude)") print("lon = \(usrLocation.coordinate.longitude)") self.userLocation = usrLocation locationManager.stopUpdatingLocation() } func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) { print("Error \(error)") } func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { switch status { case .restricted, .denied, .notDetermined: // no issue here because I make a very generic request to a server // AND I don't need user coordinates break case .authorizedWhenInUse, .authorizedAlways: // here I need user coordinates because I need to request content to a server // based on user coordinates but when I check for userLocation // at first I find <+0.00000000,+0.00000000> +/- 0.00m (speed -1.00 mps / course -1.00 print("----------------") print(userLocation) print("----------------") break } }

Necesito datos de ubicación del usuario en el cuerpo del caso .authorizedWhenInUse/.autorizeAlways porque necesito enviar las coordenadas actuales del usuario a un servidor. El problema es que cuando los necesito, al principio obtengo una ubicación de usuario como esta:

 <+0.00000000,+0.00000000> +/- 0.00m (speed -1.00 mps / course -1.00>

userLocation es miembro de la clase viewcontroller y su valor se establece en locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) . ¿Debo mover la solicitud a esta función? ¿Y cómo verifico el estado del usuario en ese contexto? Solo quiero hacer solicitudes para que los usuarios que autorizaron la aplicación recuperen su posición. Espero que la solución no sea un temporizador y varias comprobaciones, pero se agradece cualquier ayuda :-)

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

El hecho de que haya recibido .authorizedWhenInUse o .authorizedAlways no significa que ya haya iniciado los servicios de ubicación. Simplemente significa que ha sido autorizado. No debe intentar recuperar la ubicación del usuario en didChangeAuthorization .

Por lo tanto, debe llamar a startUpdatingLocation y mover su código que envía esta ubicación al servidor a su método didUpdateLocations .

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda