CoreLocation:LocationManager.stopUpdatingLocation()无效

时间:2017-05-12 14:45:26

标签: swift3 core-location

我试图了解为什么在我调用stopUpdatingLocation()后,locationManager会继续提供更新

extension ActionViewController: CLLocationManagerDelegate {
    func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
        let newLocation: CLLocation = locations.last!
        print("New Location Accuracy is: \(newLocation.horizontalAccuracy)")
        print("Desired Accuracy is: \(locationManager.desiredAccuracy)")
        if newLocation.horizontalAccuracy < 0 {
            return
        }

        if newLocation.horizontalAccuracy <= locationManager.desiredAccuracy {
            print("We are shutting down location manager")
            locationManager.stopUpdatingLocation()
            currentLocation = newLocation
        let camera = GMSCameraPosition.camera(withLatitude: newLocation.coordinate.latitude,
                                              longitude: newLocation.coordinate.longitude,
                                              zoom: zoomLevel)
...

从调试区域打印出来: 新的位置准确度是:10.0 期望的准确度是:10.0 我们正在关闭位置经理 新的位置准确度是:10.0 期望的准确度是:10.0 我们正在关闭位置经理 新的位置准确度是:10.0 期望的准确度是:10.0 我们正在关闭位置经理 新的位置准确度是:702.317035988665 期望的准确度是:10.0 新的位置准确度是:702.318123337466 期望的准确度是:10.0 新的位置准确度是:10.0 期望的准确度是:10.0 我们正在关闭位置管理员

1 个答案:

答案 0 :(得分:0)

我花了很多时间寻找答案,我相信我已经找到了答案。显然,在调用stopUpatingLocation后,GPS天线断电需要几秒钟。有人发布说这是在WWDC讨论的。

Here is the post