iPhone locationManager: проблема didFailWithError когда отключена GPS

голоса
1

Итак, я последовал другие связанные темы, но по какой-то причине я все еще с этой ошибкой, и я почти готов рвать на себе волосы. Я реализовал locationManager: didFailWithError, чтобы проверить и посмотреть, если пользователь выбирает «Не разрешать», чтобы использовать текущее местоположение.

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

Однако, следующая ошибка всегда появляется, когда пользователь выбирает «Не разрешать» ... это странно, особенно порядок, который появляется текст «IN ERROR».

ОШИБКА, время, 293420691.000, функция, пустота CLClientHandleDaemonDataRegistration (__ CLClient * Const CLDaemonCommToClientRegistration * Const __CFDictionary *), сервер не принимает регистрации клиента 1 2010-04-19 21: 44: 51,000 TestApp [1414: 207] В ОШИБКИ

Таким образом, он выводит эту ошибку еще до того, у него есть шанс попасть в функцию didFailWithError. Кто-нибудь есть какие-либо идеи о том, что может происходить? Остальная часть кода locationManager выглядит следующим образом:

self.locationManager = [[[CLLocationManager alloc] init] autorelease];
locationManager.delegate = self;
locationManager.desiredAccuracy = kCLLocationAccuracyKilometer;
locationManager.distanceFilter = 2;  
[locationManager startUpdatingLocation];
Задан 20/04/2010 в 02:51
источник пользователем
На других языках...                            


2 ответов

голоса
0

Если вы используете MapKit, а также, что это ошибка в MapKit. MapKit регистрируется с Core Location, а затем не правильно обрабатывать сообщает об ошибке, когда пользователь отклоняет обновление местоположения или сбой. Он должен передать эту ошибку с помощью метода делегата (как это делает ошибки геокодирования), но не делает.

К сожалению, я не могу думать о каком-либо способе перехватить сообщение от основного места, так как MapKit поддерживает экземпляр CLLocationManager, который он использует, чтобы получить место, и это то, который сообщает об ошибке в его делегат.

Ответил 23/05/2010 в 08:58
источник пользователем

голоса
0

Похоже, просто информационное сообщение от Core Location. Это не сбой приложения, пользователь не увидит его, и он до сих пор называет didFailWithError с правильным кодом ошибки.

В моих тестах на iPhone симулятор и устройства (3.1.3) и IPad симулятор, но не устройства IPad (3.2) появится сообщение.

Ответил 20/04/2010 в 03:59
источник пользователем

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