IOS 9 Error Domain = kCLErrorDomain Code = 0 “(null)”

Код ниже должен получить текущее местоположение. Но выше возникает ошибка. Функция didUpdateLocations никогда не вызывается.

Выполнение этого на устройстве (iPhone 5s) iOS 9.1. Info.plist имеет необходимые возможности устройства и конфиденциальность. Описание использования местоположения сконфигурировано так, как показано на прилагаемом изображении. Пожалуйста помоги!

let locationManager = CLLocationManager() override func viewDidLoad() { super.viewDidLoad() locationManager.delegate = self locationManager.requestAlwaysAuthorization() locationManager.requestLocation() } func locationManager(manager: CLLocationManager, didFailWithError error: NSError) print(error.description) } func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { print(“got location”) } 

Info.plist

Попробуйте следующее:

Идти к :

  • Product -> Scheme -> Edit Scheme -> Options -> Allow Location Simulation необходимо проверить и попытаться предоставить местоположение по умолчанию, не оставляйте его равным “none”

EDIT : Как упоминалось в комментариях, перезапустите Xcode, и все готово!

Надеюсь это поможет.

Если предупреждение о разрешении местоположения не появляется для вас, попробуйте добавить NSLocationAlwaysUsageDescription к вашему plist как строку типа. Также сделайте то же самое для NSLocationWhenInUseUsageDescription.

поиск google true ответов это кажется проблемой с IOS4.0.

в XCODE 7.1 в Project => schem => схеме редактирования.

в разделе «Выполнить» => «Параметры» => «Расположение ядра» / «Отключить».

в вашем симуляторе IOS под Debug => Местоположение выберите местоположение. Это поставило проблему для меня.

У меня была такая же проблема с приложением, что я двигался с 8.0 -> 9.0 / 9.1. Я попробовал пару вещей, например, написать часть CLLocationManager только в Swift и новый проект Obj-C. Я также тестировал его на разных устройствах. Чтобы решить проблему на устройстве, я удалил функцию didFailWithError. Который полностью останавливает ошибку. Это может показаться не лучшей идеей, но в IOS9 вы можете ограничить свое приложение устройствами, которые имеют GPS или Location-Services. Android делает это очень долго. Я также заметил, что в вашем .plist у вас нет разрешений для NSLocationALwaysUsageDescription или включенных свойств NSLocationWhenInUseUsageDescrtiption.

Только для справки я приложил то, что мой текущий .plist выглядит так, что не запускает эту ошибку, а также блок кода в obj-c файле controllerа. Код начинается с самого конца предыдущей функции, а затем закомментирован делегат didFailWithError и didUpdateLocations. В настоящее время это успешно работает в IOS 9.1

  //Get map authorization [CLLocationManager locationServicesEnabled]; locationManager = [[CLLocationManager alloc]init]; locationManager.delegate = self; locationManager.allowsBackgroundLocationUpdates = YES; if(nil == locationManager) locationManager = [[CLLocationManager alloc]init]; if ([locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) { [locationManager requestAlwaysAuthorization]; } //locationManager.distanceFilter=10; locationManager.desiredAccuracy = kCLLocationAccuracyBest; [locationManager startUpdatingLocation]; //- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error //{ // NSLog(@"didFailWithError: %@", error); // UIAlertView *errorAlert = [[UIAlertView alloc] // initWithTitle:@"Error" message:@"Failed to Get Your Location" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil]; // [errorAlert show]; //} -(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ NSLog(@"LocationUpdated: %@",[locations lastObject]); [self updateMapMarkers]; // NSDate* eventDate = location.timestamp; // NSTimeInterval howRecent = [eventDate timeIntervalSinceNow]; // if(fabs(howRecent) < 15.0){ // [self updateMapMarkers]; // } } 

Изображение .plist

У меня есть эти предложения для людей, использующих карты apple в своем приложении

  1. Не релейте по результатам симулятора, потому что всегда он не даст точных результатов.
  2. Для всех отладочных и тестовых тестов на реальных приложениях.
  3. Как и в xcode 8 (насколько я знаю), вы можете просто подключить свое устройство iOS к системе и запустить приложение напрямую.
  4. Даже для вышеуказанной проблемы решение такое же, просто попробуйте с помощью реальных устройств, ваша проблема будет решена.
  • Это приложение изменяет механизм автозапуска из фонового streamа, что может привести к повреждению двигателя и странным сбоям
  • Как установить жирный шрифт и курсив на UILabel iPhone / iPad?
  • Права указаны ... профиль. (0xE8008016). Ошибка iOS 4.2
  • UIImage закругленные углы
  • iOS MKMapView увеличить, чтобы показать все маркеры
  • Изменение цвета оттенка / цвета UITabBar
  • Что такое пользовательский агент iPhone 4?
  • Предотrotation использования UITabBar gradleиента для его изображений значков
  • Внимание: на этапе сборки ресурсов копирования Bundle содержится файл Info.plist этой цели
  • Msgstr "wait_fences: не удалось получить ответ: 10004003"?
  • Несоответствие UUID обнаружено в загруженной библиотеке
  • Interesting Posts

    Как открыть файл как доступный только для чтения из проводника Windows?

    Внешний жесткий диск USB не вращается в Windows Vista / Windows 7

    Как исключить файлы из компиляции Visual Studio?

    Какой тип использовать для хранения измененной таблицы данных в памяти в Scala?

    Почему деструктор будущего возвращается из блокировки std :: async?

    Как читать значения из файла свойств?

    У указанного ребенка уже есть родитель. Сначала вы должны вызвать removeView () родителя ребенка

    Google, как редактировать / комбо-контроль для Delphi?

    Могу ли я установить UEFI Windows 8 через DVD-диск или USB-порт?

    Измените тему деятельности программы

    Как предотвратить автоматическое заполнение роботами формы?

    Будут ли мои приложения и файлы потеряны или МОЖЕТ быть потеряны?

    Мое регулярное выражение подходит слишком много. Как заставить его остановиться?

    Создание кросс-платформенного приложения Java SWT

    Как очистить кеш шрифтов в mac

    Давайте будем гением компьютера.