Ошибка диспетчера местоположений: (ошибка 0 домена KCLErrorDomain) - PullRequest
87 голосов
/ 11 сентября 2009
Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)

Почему возникает эта ошибка?

Ответы [ 15 ]

152 голосов
/ 24 мая 2012

Эта ошибка возникает, если вы отметили Scheme/Edit Scheme/Options/Allow Location Simulation, но не указали местоположение по умолчанию Я уверен, что есть и другие причины.

42 голосов
/ 19 марта 2013

UPDATE

СПАСИБО Бен Мартен Вы можете сделать его постоянным, используя следующие шаги в XCode:

  1. Продукт> Схема> Редактировать схему
  2. Нажмите Запустить .app
  3. Вкладка параметров
  4. Уже проверено основное местоположение> выберите ваше местоположение
  5. Нажмите ОК

Кроме того, даже если вы не подключены к Wi-Fi, вы можете установить местоположение в симуляторе с помощью пунктов главного меню Debug>Location и сделать его постоянным, следуя инструкциям выше

location error in ios simulator

33 голосов
/ 26 октября 2010

У меня просто была эта проблема. Мне понадобилось время, чтобы найти решение, которое слабо связано с ответом предыдущего автора.

Аэропорт (WiFi) должен быть включен , чтобы CoreLocation в имитаторе iPhone / iPad работал. Я был подключен через Ethernet, поэтому CL ничего не делал в симуляторе. Включите Аэропорт в настройках сети и попробуйте снова. Вы можете изменить порядок своих сетевых интерфейсов, перетащив Аэропорт ниже Ethernet, если вы хотите продолжить использовать проводное соединение по беспроводной ...

12 голосов
/ 15 сентября 2009

Из документации API:

CLError

Коды ошибок, возвращаемые местоположением менеджер объекта.

typedef enum {kCLErrorLocationUnknown = 0, kCLErrorDenied, kCLErrorNetwork, kCLErrorHeadingFailure} CLError;

Константы

kCLErrorLocationUnknown Местоположение менеджер не смог получить значение местоположения прямо сейчас. Доступно в iPhone OS 2.0 и выше. Объявлено в CLError.h.

kCLErrorDenied Доступ к местоположению обслуживание было отклонено пользователем. Доступный в iPhone OS 2.0 и позже. Объявлено в CLError.h.

kCLErrorNetwork Сеть была недоступен или ошибка сети произошло. Доступно в iPhone OS 3.0b и позже. Объявлено в CLError.h.

kCLErrorHeadingFailure Заголовок не может быть определено. Доступно в iPhone OS 3.0 и выше. Объявлено в CLError.h.

Таким образом, это означает, что местоположение не может быть определено.

Я полагаю, что наиболее вероятной причиной является то, что менеджер местоположений использует WiFi для триангуляции местоположения, а база данных не охватывает локальные сети. Это, очевидно, может быть исправлено пользователем, если они идут здесь .

Однако, как я уже отмечал, я иногда видел это как временную ошибку при запуске программы на основе определения местоположения в месте, где обычно работает функция определения местоположения WiFi.

Наконец, я думаю, что возможно увидеть эту ошибку, если есть какой-то сбой оборудования.

5 голосов
/ 21 июля 2011

1) убедитесь, что у вас есть действующее соединение WiFi и 3G

если вы это сделаете, то

2) зайдите в настройки и сбросьте ваши службы определения местоположения 3) сбросить настройки сети

3 голосов
/ 01 июля 2011

Эта ошибка выдается, когда Location Manager не может получить информацию о местоположении немедленно. Я обнаружил, что эта ошибка возникала при вызове метода startUpdatingLocation. Для меня это происходило на iPod, но не на iPhone. Это имеет смысл, поскольку у iPhone есть больше способов (например, в сотовой сети) получить информацию о местоположении и он может быстро оценить местоположение, в то время как iPod занимает больше времени, что привело к возникновению этой ошибки на iPod.

Поскольку при возникновении этой ошибки locationManager: didFailWithError: вызывается метод делегата, этот конкретный случай можно обработать в условном выражении, сопоставив «[домен ошибки]» и «[код ошибки]» из объекта ошибки, переданного в этот метод.

2 голосов
/ 14 октября 2014

Точная причина, по которой я обнаружил, заключается в конфликте, возникающем при симуляции местоположения в симуляторе ios «Настройки отладки» и в настройках xcode «Редактировать схемы». Убедитесь, что вы задали местоположение пользователя по умолчанию в любом и пометьте другое как Нет . Решил проблему, надеюсь, это наверняка поможет. InXcode: enter image description here

В симуляторе iphone / ipad: enter image description here

1 голос
/ 11 августа 2016

Если вы получили это в эмуляторе, выполните следующие действия:

Debug > Location > ✓ Apple

emulator instruction

1 голос
/ 07 декабря 2015

Эта ошибка возникает при запуске вашей программы, но вы имитируете местоположение после запуска программы.

У меня есть метод: выйдите из симулятора и перезапустите его, затем установите местоположение вашего симулятора до запуска программы, и это работает для меня.

Надеюсь, это поможет! Это конечно помогло мне. спасибо ...

1 голос
/ 18 марта 2014

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

В Xcode выберите меню «Отладка / Симуляция местоположения», и вам будет предложено:

a. "Don't Simulate Location"
b. 12 example locations
c. "Add GPX File to Project..."

Выберите «Добавить файл GPX в проект ...» и выберите файл GPX, который вы создали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...