2015-05-29 70 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-2km半径)这是引发此错误:

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

我用模拟器和真实设备也试过。当我尝试时,我在真实设备上连接了互联网。有黑洞吗? :)或者我不知道。

有没有人请给我任何想法,是什么造成这种现象?

谢谢!

+0

您是否尝试在相同位置运行Google地图应用程序?它显示你的位置?准确性好吗? –

回答

1

当您的设备无法从实际的GPS系统,无线或互联网上找到您的位置时,会发生这种情况。我的观察是,当设备(这是iPhone 4的情况下)是在一个密室,并通过使用笔记本电脑的热点与Wifi连接,那么大部分时间我都会遇到同样的错误。

可能的解决方案 -

  1. 如果您收到此错误尝试调用locManager.stopUpdatingLocation(),并再次调用locManager.startUpdatingLocation()。

  2. 检查其有效WIFI或3G/2G网络连接

  3. 转到您的设备设置和重置定位服务

  4. 重置您的网络设置

希望这将有助于您。

+0

但是,如果我尝试模拟器,我设置默认位置,如何可能发生? :) – solarenqu

+1

如果您尝试使用iOS 8.x,那么您必须从模拟器菜单设置自定义位置,如果它不是,那么它会给你同样的错误。如果您使用iOS 7.x模拟器进行检查,则永远不会使用自定义gpx文件集。 –

0

这是一个老问题/答案,但它没有考虑模拟器的用例。也就是说,确保您没有调试>位置>未选择像这样:

enter image description here

一定要选择像苹果在Cupertino的总部,例如一个有效的位置:

enter image description here

相关问题