/ / iPhone locationManager: didFailWithError problem quando GPS disabilitato - iphone, mapkit, cllocationmanager

iPhone locationManager: didFailWithError problem quando GPS disabilitato - iphone, mapkit, cllocationmanager

Quindi, ho seguito altri thread correlati, ma perqualche ragione ho ancora questo errore e sono quasi pronto a strapparmi i capelli. Ho implementato locationManager: didFailWithError per verificare e vedere se un utente seleziona "Don" t Allow "per utilizzare la posizione corrente.

-(void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
NSLog(@"IN ERROR");
if ([error code] == kCLErrorDenied){
[manager stopUpdatingLocation];
}
}

Tuttavia, l'errore seguente appare sempre quando l'utente seleziona "Non consentire" ... è strano, specialmente l'ordine in cui appare il testo "IN ERRORE".

ERRORE, Tempo, 293.420.691.000, funzione, "vuoto CLClientHandleDaemonDataRegistration (__ * CLClient, const CLDaemonCommToClientRegistration *, const __CFDictionary *) ", il server no accetta la registrazione del cliente 1 2010-04-19 21: 44: 51.000 testApp [1414: 207] IN ERRORE

Quindi, sta emettendo questo errore ancor prima che lo abbiauna possibilità di entrare nella funzione didFailWithError. Qualcuno ha qualche idea di cosa potrebbe accadere? Il resto del codice locationManager è il seguente:

self.locationManager = [[[CLLocationManager alloc] init] autorelease];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
locationManager.distanceFilter = 2;
[locationManager startUpdatingLocation];

risposte:

0 per risposta № 1

Sembra solo un messaggio informativo da Core Location. Non blocca la tua app, l'utente non la vedrà e chiama ancora didFailWithError con il codice di errore corretto.

Nei miei test, il messaggio appare sul simulatore e sul dispositivo iPhone (3.1.3) e sul simulatore iPad ma non sul dispositivo iPad (3.2).


0 per risposta № 2

Se stai usando MapKit, questo è un errorein MapKit. MapKit si registra con Core Location e quindi non gestisce correttamente l'errore segnalato quando l'utente rifiuta l'aggiornamento della posizione o fallisce. Dovrebbe passare questo errore tramite un metodo delegato (come avviene per gli errori di geocoding), ma non lo fa.

Sfortunatamente non riesco a pensare ad altro modointercettazione del messaggio dal percorso principale, in quanto MapKit mantiene un'istanza di CLLocationManager che utilizza per ottenere la posizione e quella che sta segnalando l'errore al suo delegato.