iPhone locationManager: Problem didFailWithError gdy wyłączony GPS

głosy
1

Tak, ja po innych pokrewnych tematów, ale z jakiegoś powodu nadal mam ten błąd i jestem gotowy, aby oderwać się moje włosy. I wprowadziły locationManager: didFailWithError aby sprawdzić czy użytkownik wybierze „Nie Pozwól” do korzystania z bieżącej lokalizacji.

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

Jednak zawsze pojawia się następujący komunikat o błędzie, gdy użytkownik wybierze opcję „Do not Allow” ... to dziwne, zwłaszcza że kolejność pojawi się tekst „przez pomyłkę”.

BŁĄD, Time, 293420691.000, funkcja void CLClientHandleDaemonDataRegistration (__ CLClient *, const CLDaemonCommToClientRegistration *, const __CFDictionary *), serwer nie akceptuje rejestracji klient 1 2010-04-19 21: 44: 51,000 testapp [1414: 207] w błędzie

Tak, to wyprowadzanie ten błąd, zanim jeszcze ma szansę dostać się do funkcji didFailWithError. Czy ktoś ma jakieś pomysły, co może się dziać? Reszta kodu locationManager przedstawia się następująco:

self.locationManager = [[[CLLocationManager alloc] init] autorelease];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
locationManager.distanceFilter = 2;  
[locationManager startUpdatingLocation];
Utwórz 20/04/2010 o 02:51
źródło użytkownik
W innych językach...                            


2 odpowiedzi

głosy
0

Jeśli używasz MapKit jak dobrze, że jest to błąd w MapKit. MapKit rejestruje z rdzeniem lokalizację, a następnie niewłaściwie obsługi błędu zgłaszane gdy użytkownik odrzuca aktualizację lokalizacji lub awarii. Należy zdać ten błąd na za pomocą metody delegata (jak ma to miejsce w poszukiwaniu błędów geokodowanie), ale tego nie robi.

Niestety nie mogę wymyślić jakiś sposób, aby przechwycić wiadomość od położenia rdzenia, jak MapKit utrzymuje instancją CLLocationManager których używa, aby uzyskać lokalizację, a to jest jeden, który jest zgłoszenie błędu do swojego delegata.

Odpowiedział 23/05/2010 o 08:58
źródło użytkownik

głosy
0

Wygląda na to tylko komunikat informacyjny z jądra Lokalizacja. To nie upaść swoją aplikację, użytkownik nie będzie mógł go zobaczyć i nadal nie zadzwonić didFailWithError z odpowiednim kodem błędu.

W moich testach na symulatorze iPhone i urządzenia (3.1.3) i symulator iPada, ale nie w urządzeniu iPad (3.2) pojawi się komunikat.

Odpowiedział 20/04/2010 o 03:59
źródło użytkownik

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more