2009-12-15 6 views
7

La prima volta che l'app tenta di ottenere la posizione degli utenti viene richiesto "Desidera utilizzare la posizione corrente" e possono premere Non consentire o ok. C'è un modo per scoprire se l'utente ha colpito ok o non consentire? Sto cercando di far visualizzare a MKMapView la posizione corrente degli utenti, ma mi piacerebbe prendere diverse azioni in base alla selezione degli utenti.controlla se un utente consente all'app di utilizzare la loro posizione

Normalmente si potrebbe pensare che ci sarebbe un delegato per ottenere questa informazione, ma non sembra esserci.

Grazie in anticipo per il vostro aiuto.

risposta

16

La prima chiamata per ottenere la posizione dell'utente avrà esito negativo con un errore che informa che l'utente ha negato i servizi di localizzazione. Il tuo metodo CLLocationManagerDelegate verrà chiamato didFailWithError, come indicato di seguito. (Le costanti sono definite in 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

proprio quello che stavo cercando! – Codezy

+0

Questo non sembra essere il caso di startMonitoringSignificantLocationChanges –

Problemi correlati