CoreLocation:LocationManager.stopUpdatingLocation() 不工作
Posted
技术标签:
【中文标题】CoreLocation:LocationManager.stopUpdatingLocation() 不工作【英文标题】:CoreLocation: LocationManager.stopUpdatingLocation() not working 【发布时间】:2017-05-12 14:45:25 【问题描述】:我试图了解为什么 locationManager 在我调用 stopUpdatingLocation() 后继续提供更新
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 我们正在关闭位置管理器
【问题讨论】:
我认为你应该打电话给manager.stopUpdatingLocation()
而不是locationManager.stopUpdatingLocation()
。
恐怕没用。
你确定"We are shutting down location manager"
被打印了吗?
是的。它被多次打印,这是问题的核心。
它会在一段时间后停止报告位置吗?
【参考方案1】:
我花了很多时间寻找答案,我相信我已经找到了。显然,在调用 stopUpatingLocation 后,GPS 天线需要几秒钟才能断电。有人发帖称这是在 WWDC 上讨论过的。
Here is the post
【讨论】:
以上是关于CoreLocation:LocationManager.stopUpdatingLocation() 不工作的主要内容,如果未能解决你的问题,请参考以下文章