2015-05-29 2 views
0

У меня есть менеджер CLLocation. Он работает нормально.CLLocationManager - kCLErrorDomain

locManager = CLLocationManager() 
locManager.delegate = self 
locManager.desiredAccuracy = kCLLocationAccuracyBest 
locManager.requestWhenInUseAuthorization() 
locManager.startUpdatingLocation() 

И, конечно, у меня есть методы делегата:

func locationManager(manager: CLLocationManager, didFailWithError error: NSError) { 
     println("didfail") 
     println(error) 
    } 

func locationManager(manager:CLLocationManager, didUpdateLocations locations:[AnyObject]) { 
     println("location manager called..") 
     let locationLast = locations.last as! CLLocation 

     latitude = locationLast.coordinate.latitude.description 
     longitude = locationLast.coordinate.longitude.description 

     locManager.stopUpdatingLocation() 

     //.... 
    } 

Там нет никаких проблем, что он работает! Но, когда я нахожусь здесь 47.5775679 19.0488392 (или в 1-2км радиусе этой точки), это выдает эту ошибку:

Error Domain=kCLErrorDomain Code=0 "The operation couldn’t be completed. (kCLErrorDomain error 0.)"

Я попытался с имитатором и реальными устройствами тоже. Когда я пытаюсь, у меня есть подключение к Интернету на реальных устройствах. Есть черная дыра? :) или я не знаю.

Может кто-нибудь, пожалуйста, дать мне какое-либо представление о том, что является причиной этого явления?

Спасибо!

+0

Вы пытались запустить приложение «Карты» в том же месте? Показывает ли ваше местоположение? Хорошая точность? –

ответ

1

Это происходит, когда ваше устройство не может узнать ваше местоположение от фактической системы GPS, Wi-Fi или Интернета. Мое замечание заключается в том, что когда устройство (это iPhone 4 для моего случая) находится в близком помещении и связано с Wi-Fi, используя горячие точки от ноутбука, то чаще всего я получаю эту же ошибку.

Возможные решения -

  1. Если вы получили эту ошибку попытаться вызвать locManager.stopUpdatingLocation() и снова позвонить locManager.startUpdatingLocation().

  2. Проверьте устройство, имеющую действительный WIFI или подключение к Интернету 3G/2G

  3. Перейти в настройки и сбросить службы определения местоположения

  4. Сбросить настройки сети

Надеется, что это поможет вы.

+0

, но если я пытаюсь с помощью симулятора, и я установил местоположение по умолчанию, как это могло произойти? :) – solarenqu

+1

Если вы попытались с iOS 8.x, тогда вам нужно установить пользовательское местоположение из меню симулятора, и если его нет, то он даст вам такую ​​же ошибку. Если вы проверите с iOS 7.x-симулятором, у него никогда не появится пользовательский набор файлов gpx. –

0

Это старый вопрос/ответ, но он не рассматривает вариант использования симулятора. То есть, убедитесь, что вы не Debug> Местоположение> Ничего не выбрано так:

enter image description here

Не забудьте выбрать правильное местоположение как HQ компании Apple в Купертино, например:

enter image description here

Смежные вопросы