【问题标题】:CLLocationManager - kCLErrorDomainCLLocationManager - kCLErrorDomain
【发布时间】:2015-08-12 04:29:25
【问题描述】:

我有一个 CLLocation 管理器。它工作正常。

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 "无法执行该操作 完全的。 (kCLErrorDomain 错误 0.)"

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

谁能给我任何想法,是什么导致了这种现象?

谢谢!

【问题讨论】:

  • 您是否尝试在同一位置运行地图应用?它是否显示您的位置?准确性好吗?

标签: ios swift cllocationmanager


【解决方案1】:

当您的设备无法从实际 GPS 系统、wifi 或互联网中找到您的位置时,就会发生这种情况。我的观察是,当设备(我的情况是 iPhone 4)在一个封闭的房间里并使用笔记本电脑的热点连接到 Wifi 时,大多数时候我都会遇到同样的错误。

可能的解决方案 -

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

  2. 检查您的设备是否有有效的 WIFI 或 3G/2G 互联网连接

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

  4. 重置您的网络设置

希望这会对你有所帮助。

【讨论】:

  • 但是,如果我尝试使用模拟器并且我设置了默认位置,那怎么会发生呢? :)
  • 如果您尝试使用 iOS 8.x,那么您必须从模拟器菜单设置自定义位置,如果不是,那么它会给您同样的错误。如果你检查 iOS 7.x 模拟器,它永远不会附带自定义 gpx 文件集。
【解决方案2】:

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

请务必选择一个有效的位置,例如位于库比蒂诺的 Apple 总部:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-07
    • 1970-01-01
    • 2015-05-19
    • 2013-07-18
    • 2016-07-23
    • 2011-08-27
    • 2012-12-03
    • 2014-11-15
    相关资源
    最近更新 更多