Pregunta

Tengo una aplicación que verificó la ubicación. Le pide al usuario que use la ubicación y si el usuario dice que no en el menú hay un problema cuando carga el mapview.

Una vez que seleccione el MAPVIEW, solicita nuevamente la ubicación del usuario. Si el usuario dice que no nuevamente, mi consola sigue mostrando errores/advertencia, así como mi NSLOG de "didfailwitherror" de mi clase de administrador de ubicación.

¿Hay alguna forma de detener la gestión de la ubicación: DiFailwitherrors si el usuario ya ha dicho que no? No creo que Apple acepte mi aplicación si el archivo de registro se llena mi manager de ubicación

Aquí hay un ejemplo de lo que se repite en la consola.

ERROR,Time,290362745.002,Function,"void CLClientHandleDaemonDataRegistration(__CLClient*, const CLDaemonCommToClientRegistration*, const __CFDictionary*)",server did not accept client registration 1
WARNING,Time,290362745.005,Function,"void CLClientHandleDaemonInvalidation(__CFMessagePort*, void*)",client 1035.0 has been disconnected from daemon
2010-03-15 12:19:05.002 SAQ[1035:207] LocationManager Error Denied by user
¿Fue útil?

Solución

Documentación sobre -didFailWithError: El método dice:

Si el usuario niega el uso de su aplicación del servicio de ubicación, este método informa un error de Kclerrordenied. Al recibir tal error, debe detener el servicio de ubicación.

Entonces, después de recibir este error, debe enviarle mensajes a su gerente de ubicación para dejar de actualizar la ubicación:

[manager stopUpdatingLocation];

Si está usando mkmapview, creo que configurar es showsUserLocation propiedad a NO debería hacer el truco.

Otros consejos

Es su responsabilidad verificar el código de error y dejar de actualizar la ubicación si el código de error es kCLErrorDenied.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top