Сбой CLLocationManager на симуляторе iPhone с кодом kCLErrorDomain=0
CLLocationManager
на iPhone Simulator предполагается подделать Купертино (не так ли?) но это не так, это не удается с kCLErrorDomain Code=0
вместо. Делегата LocationManager получает сообщение didFailWithError
. Этот метод реализован для регистрации ошибки, и консоль выводит следующее:
Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)"
я работал над реальным проектом, когда столкнулся с этой проблемой, но бессмысленно обсуждать мой код, потому что я загрузил образец кода "местоположения" (обновлен 2010-06-22 для iOS 4) из центра разработки и проблема не исчезала.
приложение предназначено для включения кнопки "Добавить" при получении первого обновления местоположения, чтобы пользователи могли отслеживать свои местоположения, но ничего не делает.
я добавил одну (тривиальную) строку к реализации didFailWithError
журнал ошибки, если таковые имеются. Я получаю ошибку, описанную выше.
С Xcode 3.2.2 и таргетингом 3.1.3 я мог бы получить фиксированное местоположение (Купертино) при запуске более старой версии " местоположения" проект.
может кто-нибудь помочь?
спасибо.
13 ответов
эта ошибка также возникает, если у вас есть Scheme/Edit Scheme/Options/Allow Location Simulation, но нет набора местоположений по умолчанию.
пожалуйста, проверьте это может решить вашу проблему.
следующие шаги исправили мою проблему:
- в меню симулятора:
Reset Content and Settings...
.- закрыть симулятор
- перезапустить приложение.
Я столкнулся с той же ситуацией и последовал этим шагам, может быть, это поможет:)
1) Перейти к симулятору (в зависимости от версии)
2) Перейдите в меню отладка - > расположение - > выберите Apple, как ваш обычай местоположение.
Он начал работать в моем случае..
Я слышал это reported before
но я никогда не видел его до сих пор. У меня был аэропорт выключен на моем MacBook, так как я использовал ethernet. Я включил Airport и перезапустил симулятор, и теперь он работает.
вам нужно Wi-Fi (аэропорт) включен на вашем Mac для тренажера, чтобы сообщить позицию с Xcode 3.2.3.
эта ошибка также возникает, если у вас есть Scheme/Edit Scheme/Options/Allow Location Simulation
проверено, но не установлено местоположение по умолчанию.
Он сделал то же самое со мной:
сначала он показывал местоположение, затем я установил бета-версию XCode 4.2, затем, когда я вернулся в 4.1, местоположение больше не показывалось и CLLocationManager
выдавал ошибку местоположения.
Я сделал следующее, И проблема была исправлена (я не знаю, требуются ли оба действия или достаточно только одного, потому что теперь он работает и не может воспроизводиться):
запустите симулятор:
- отключить сетевой кабель
- измените устройство в симуляторе на iPhone (retina): оборудование > устройство > iPhone (Retina)
Я сделал это по ошибке, и ее место на моем iMac.
CLLocationManager
снова начал работать, как ожидалось на iOS Simulator 5.0.
По моему опыту, это часто не с kCLErrorDomain Code=0
на iOS Simulator 4.0 через 4.3. Включение аэропорта и подключение к Wi-Fi, как было предложено другими ответами, не помогло в моем случае. Однако, я хотел бы поблагодарить всех за ответы. Я просто работал над этой проблемой, тестируя весь основной код местоположения на устройство.
недавно я обновился до XCode 4.2 (от XCode 3.2.6) и iOS Simulator 5.0, который поставляется с ним, и в результате этого я заметил, что CLLocationManager
снова начал работать, как ожидалось. При выборе старого симулятора в XCode 4.2 он продолжает терпеть неудачу; что указывает на симулятор как на виновника.
должен быть включен и вы должны присоединиться к сети. По крайней мере, таков был мой опыт. Когда я включил его, я продолжал получать ту же ошибку. Присоединился к моей беспроводной сети и ошибка ушла.
Я продолжал получать ошибку, пока я не включил свой аэропорт и не подключился к сети wifi (не уверен, что я даже должен быть на этом!)... и CLLocationManager
работал после неудачи последовательно в течение веков. Это огромная ошибка симулятора или что??!
Apple-пожалуйста, исправьте это! : P
Я обычно подключен к Ethernet, выполняя тестирование симулятора - я получил этот сбой. Включил WIFI, но не использовал его для передачи данных (ни к чему не подключался) - теперь все работает.
Итак, решение было-просто включите WIFI (Я также вышел и перезапустил симулятор, не уверен, что это необходимо).
Лев и Xcode 4.2
Это все еще происходит в iOS 5.0.1 при следующих условиях:
- запустить симулятор в ситуации без подключения wi-fi
- подключение к сети wi-fi
- [результат] CLLocationManager завершается с ошибкой, описанной в этом вопросе.
- [Fix] Перезапустить Симулятор
сначала перейдите в панель журнала Xcode и установите "не имитировать местоположение". Затем выберите меню симулятора>отладка>расположение>установить пользовательский или выберите любой.