2009-12-15 9 views
7

La primera vez que la aplicación intenta obtener la ubicación de los usuarios se les pide que "Me gustaría usar su ubicación actual" y pueden presionar No permitir o aceptar. ¿Hay alguna forma de averiguar si el usuario ha tocado bien o no lo permite? Estoy intentando que MKMapView muestre la ubicación actual de los usuarios, pero me gustaría realizar diferentes acciones según la selección de los usuarios.compruebe si un usuario permite que la aplicación use su ubicación

Normalmente, usted pensaría que habría un delegado para obtener esta información, pero no parece ser así.

Gracias de antemano por su ayuda.

Respuesta

16

Su primera llamada para obtener la ubicación del usuario fallará con un error que le indica que el usuario ha denegado los servicios de ubicación. Se llamará a su CLLocationManagerDelegate método didFailWithError, como se indica a continuación. (Las constantes se definen en CLError.h)

- (void)locationManager:(CLLocationManager*)aManager didFailWithError:(NSError*)anError 
{ 
    switch([anError code]) 
    { 
    case kCLErrorLocationUnknown: // location is currently unknown, but CL will keep trying 
    break; 

    case kCLErrorDenied: // CL access has been denied (eg, user declined location use) 
    message = @"Sorry, flook has to know your location in order to work. You'll be able to see some cards but not find them nearby"; 
    break; 

    case kCLErrorNetwork: // general, network-related error 
    message = @"Flook can't find you - please check your network connection or that you are not in airplane mode"; 
    } 
} 
+1

justo lo que estaba buscando! – Codezy

+0

Esto no parece ser el caso con startMonitoringSignificantLocationChanges –

Cuestiones relacionadas