2013-11-23 2 views
5

Использование IBeacon и CoreLocation Я получаю следующее сообщение об ошибке:CLLocationManager kCLErrorDomain Codes?

Ошибка домена = kCLErrorDomain Code = 16 «Операция не может быть завершена (kCLErrorDomain ошибка 16.)

Если я не буду его не хватает. , как представляется, не должна быть четкой ссылкой на Apple, для того, что каждый из кода ошибки означает

Можно ли интерпретировать этот код ошибки

ошибки вызовы из:.?

- (void)locationManager:(CLLocationManager *)manager rangingBeaconsDidFailForRegion: (CLBeaconRegion *)region withError:(NSError *)error{ 
NSLog(@"%@", error); 
} 

- (void)locationManager:(CLLocationManager *)manager monitoringDidFailForRegion:(CLRegion *)region withError:(NSError *)error{ 
NSLog(@"%@", error); } 
+1

Посмотрите документацию для [CLError] (https://developer.apple.com/library/mac/documentation/CoreLocation/Reference/CoreLocationConstantsRef/Reference/reference.html) и заголовочный файл '' CLError.h '' – quellish

ответ

12

Посмотрите на документы для CLError. Значение 16 равно kCLErrorRangingUnavailable.

документы говорят:

Ranging is disabled. This might happen if the device is in Airplane mode or if Bluetooth or location services are disabled.

+0

Отлично. Спасибо за этот совет. (Проголосовал) –

+1

Да, спасибо за это - хотя это явно ошибка с Apple. Службы местоположения явно работали, поскольку маяки были ранжированы, и затем вы получаете эту краткую ошибку, которая затем автоматически корректирует себя. Таким образом, маяки в порядке, вы получите сообщение об ошибке, и оно снова изменится. Мы не касались телефона или маяка и на основе мониторинга маяка не было никаких изменений в мощности сигнала. Спасибо за ответ! – BEEKn

+0

Включение и выключение телефона для меня. – shim

1

Кроме того, убедитесь, что у вас есть фон с поддержкой App Refresh. По какой-то причине с моим iPhone 5s на iOS 7.1.1, маяки не будут отображаться, если обновление фонового обновления отключено, даже если мое приложение находится на переднем плане. Включение обновления приложения вызвало появление маяков.

1

Вы можете использовать перечисление CLError и ошибку, возвращенную вашему менеджеру местоположений, чтобы обрабатывать ошибки местоположения определенным и понятным образом.

Это выглядит следующим образом:

func locationManager(manager: CLLocationManager!, didFailWithError error: NSError!) { 
    if let locationError = CLError(rawValue: error.code) { 
    switch locationError { 
    case .Denied: 
     println("Location permissions denied") 
    default: 
     println("Unhandled error with location: \(error)") 
    } 
    } 
} 

Благодаря @rmaddy для наконечника CLError.

Смежные вопросы