2016-10-04 86 views
0

locationManager.startUpdatingLocation()开启您的位置更新并locationManager.stopUpdatingLocation()关闭您的更新。Swift 2.3:有没有办法找出位置服务,位置更新的状态?

但我想知道是否有办法获得当前状态。
我试过respondsToSelector但这不是很对,可能显然总是返回true

我试图做一个开关,让用户打开和关闭位置更新。
获取交换机的默认值是我的问题。

更新为了清楚起见:我试图查看位置更新的状态而不是服务的状态。

+0

它在文档 - CLLocationManagerDelegate – brandonscript

+0

的文档处理肯定的委托,但是这需要我创造我自己的布尔检查当前状态......这可能是最终的解决方案。我觉得奇怪的是,没有简单的方法来检查位置更新是否发生,或者没有使用委托进行手动检查。 –

回答

0

您可以拨打locationServicesEnabled(),它会返回bool值并进行切换。

对不起,我误解你的问题,你可以检查authorizationStatus()这是

  • ,如果它是.Restricted.Denied那么你没有permisssion使用

  • .AuthorizedAlways.AuthorizedWhenInUse枚举用于重大和前景位置变化。

+0

感谢您的回复。这不符合我的使用情况的原因是它检查设备上是否启用了定位服务。所以当用户说是允许应用程序使用位置服务时,该函数将始终返回true。 –

+0

是不是你想要的,如果它返回YES,只需调用'stopUpdatingLocation()' – Misha

+0

这是一个开关,应该包含你是否正在更新位置。因此,你已经'stopUpdatingLocation()',所以它返回false。所以开关的默认值是关闭的。我想更好的方法是,我正在寻找位置更新的状态,而不是服务本身的状态。 –

相关问题