Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)
Почему возникает эта ошибка?
Location Manager Error : Operation could not be completed(KCLErrorDomain error 0)
Почему возникает эта ошибка?
Эта ошибка возникает, если у вас установлен Scheme/Edit Scheme/Options/Allow Location Simulation
, но у вас нет установленного по умолчанию местоположения. Я уверен, что есть и другие причины.
UPDATE
СПАСИБО ЗА Бен Мартен Вы можете сделать это постоянным, используя эти шаги в XCode:
- Продукт > Схемa > Изменить схему
- Нажмите "Запустить".app
- Вкладка "Параметры"
- Уже проверено местоположение ядрa > выберите ваше местоположение
- Нажмите OK
Кроме того, даже если вы не подключены к Wi-Fi, вы можете установить местоположение в симуляторе через верхние пункты меню Debug>Location
и сделать его постоянным, следуя шагам выше
У меня была эта проблема. Потребовал мне некоторое время, чтобы найти решение, которое слабо связано с предыдущим плакатным ответом.
Аэропорт (WiFi) должен быть включен для работы CoreLocation в iPhone/iPad Simulator. Я был подключен через Ethernet, поэтому CL ничего не делал в Simulator. Включите аэропорт в настройках сети и повторите попытку. Вы можете изменить порядок сетевых интерфейсов, перетаскивая "Аэропорт" ниже "Ethernet", если вы хотите продолжать пользоваться своим проводным подключением по беспроводной сети...В документах 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.
Таким образом, это означает, что местоположение не может быть определено.
Я бы предположил, что наиболее вероятной причиной является то, что менеджер местоположений использует Wi-Fi для триангуляции местоположения, а база данных не охватывает локальные сети. Это, видимо, может быть исправлено пользователем, если они идут здесь.
Однако, как я уже отмечал, я иногда видел это как временную ошибку при запуске программы на основе местоположения в месте, где обычно работает файл местоположения WiFi.
Наконец, я думаю, что можно увидеть эту ошибку, если есть какой-то аппаратный сбой.
1) убедитесь, что у вас действительно есть действительное соединение WiFi и 3G.
если вы это сделаете,
2) перейдите к настройкам и reset вашим службам определения местоположения 3) reset настройки сети
Эта ошибка возникает, когда диспетчер местоположений не может сразу получить информацию о местоположении. Я обнаружил, что эта ошибка возникала при вызове метода startUpdatingLocation. Для меня это происходило на iPod, но не на iPhone. Это имеет смысл, поскольку iPhone имеет больше возможностей (например, сотовой сети) для получения информации о местоположении и может быстро оценить местоположение, тогда как iPod занимает больше времени, из-за чего эта ошибка возникает на iPod.
Поскольку при этой ошибке вызывается метод locationManager: didFailWithError: delegate, можно обрабатывать этот конкретный случай в условном выражении, сопоставляя "[домен ошибки]" и "[код ошибки]" от объекта ошибки, переданного в этот метод.
Точная причина того, что я нашел, - это конфликт, возникающий при моделировании местоположения как в симуляторе ios "Параметры отладки", так и в настройках xcode "Редактировать схемы". Убедитесь, что вы выбрали местоположение по умолчанию в любом из это и отметить другой, чтобы никто не решил проблему, надеюсь, что это может помочь. InXcode:
В симуляторе iphone/ipad:
Вы можете добавить свой собственный список мест в Xcode для тестирования своих приложений.
Внутри Xcode выберите меню Debug/Simulate Location, и вам будет предложено:
a. "Don't Simulate Location"
b. 12 example locations
c. "Add GPX File to Project..."
Выберите "Добавить файл GPX в Project..." и выберите файл GPX, который вы создали.
Эта ошибка возникает во время запуска вашей программы, но вы имитируете местоположение после запуска программы.
Я получаю метод: выйдите из своего симулятора и перезапустите его, а затем установите местоположение симулятора перед запуском программы, и он работает для меня.
Надеюсь, это поможет! Это, безусловно, помогло мне. спасибо...
Если вы получили это в эмуляторе, выполните следующие
Debug > Location > ✓ Apple
Перейдите в проект Xcode > продукт > схемa > схема редактирования > моделирование местоположения chek > установите свое местоположение > и снова запустите приложение. Надеюсь, что это сработает!
Благодаря этой статье (https://possiblemobile.com/2013/04/using-xcode-to-test-location-services/) я получил подсказку, чтобы посмотреть на данные в моем пользовательском файле GPX и нашел проблему.
Некоторые файлы GPX, которые вы можете получить из разных источников, могут иметь следующие элементы, указывающие разные координаты в указанном пути. Это не работает с Xcode Location Simulation.
<gpx>
...
<trkpt lat="" lon="">
<ele></ele>
</trkpt>
...
</gpx>
Что вам нужно сделать, это найти все вхождения элемента trkpt и заменить его на "wpt" в вашем любимом редакторе text/xml. Конечный результат должен быть следующим:
<gpx>
<wpt lat="" lon="">
<ele></ele>
</wpt>
...
</gpx>
Надеюсь, это поможет! Это, безусловно, помогло мне.
все это не сработало для меня.. то, что сработало для меня, было:
установите местоположение с симулятора на none
, а затем верните его в custom
, пока приложение запущено.
Все предложения не помогли в моем случае. Что помогло удалить приложение с устройства-тренажера, переустановить его и разрешить ему получить доступ к местоположению (в приложении настроек).
Если вы получаете это на устройстве, скорее всего, вы не просили или пользователь отказал в разрешении на сбор местоположения.