CLLocationManager kCLErrorDomain Коды?

Используя iBeacon и CoreLocation, я получаю следующую ошибку:

Error Domain=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); }

person BEEKn    schedule 23.11.2013    source источник
comment
Посмотрите документацию по CLError. , а заголовочный файл CLError.h   -  person quellish    schedule 24.04.2014


Ответы (3)


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

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

Ранжирование отключено. Это может произойти, если устройство находится в режиме полета или отключены Bluetooth или службы определения местоположения.

person rmaddy    schedule 23.11.2013
comment
Превосходно. Спасибо за этот совет. (проголосовали) - person Duncan C; 24.11.2013
comment
Да, спасибо за это - хотя это явно ошибка Apple. Службы определения местоположения явно работали, когда маяки находились в диапазоне, а затем вы получаете эту короткую ошибку, которая затем автоматически исправляет себя. Таким образом, маяки работают нормально, затем вы получаете сообщение об ошибке, и снова все в порядке. Мы не прикасались к телефону или маяку, и, судя по мониторингу маяка, уровень сигнала не изменился. Спасибо за ответ! - person BEEKn; 24.11.2013
comment
Включение и выключение телефона помогло мне. - person shim; 18.03.2014

Вы можете использовать перечисление 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.

person SimplGy    schedule 08.06.2015

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

person collinotis    schedule 24.04.2014