【发布时间】:2012-05-30 17:39:15
【问题描述】:
如果newLocation 足够准确,我的应用程序使用启动CLLocationManager 然后从locationManager:didUpdateToLocation:fromLocation: 调用stopUpdatingLocation 的典型模式。我的问题是我是否也需要打电话
[locationManager stopUpdatingLocation];
在locationManager:didFailWithError:。苹果文档说
如果定位服务无法立即检索位置,它会报告
kCLErrorLocationUnknown错误并继续尝试。在这种情况下,您可以简单地忽略错误并等待新事件。如果用户拒绝您的应用程序使用定位服务,此方法会报告
kCLErrorDenied错误。收到此类错误后,您应该停止定位服务。
在前一种情况下,我不应该调用stopUpdatingLocation,因为位置管理器可能仍然会发出一个好的位置。其他情况呢?我的应用在尝试使用定位服务之前总是检查[CLLocationManager locationServicesEnabled] 和[CLLocationManager authorizationStatus],所以我真的需要处理kCLErrorDenied 的情况吗?如果出现任何其他错误,定位服务会自动停止吗?
【问题讨论】: