1

我的应用程序使用启动 CLLocationManager 的典型模式,然后在足够准确的情况下stopUpdatingLocation从中调用。我的问题是我是否也需要打电话locationManager:didUpdateToLocation:fromLocation:newLocation

[locationManager stopUpdatingLocation];

locationManager:didFailWithError:. 苹果文档说

如果定位服务无法立即检索位置,它会报告kCLErrorLocationUnknown错误并继续尝试。在这种情况下,您可以简单地忽略错误并等待新事件。

如果用户拒绝你的应用程序使用定位服务,这个方法会kCLErrorDenied报错。收到此类错误后,您应该停止定位服务。

在前一种情况下,我不应该打电话stopUpdatingLocation,因为位置管理器可能仍然会发出一个好的位置。其他情况呢?我的应用程序总是在尝试使用定位服务之前进行检查[CLLocationManager locationServicesEnabled][CLLocationManager authorizationStatus]所以我真的需要处理这种kCLErrorDenied情况吗?如果出现任何其他错误,定位服务会自动停止吗?

4

1 回答 1

0

首先,我认为您应该处理大多数错误情况。特别是如果它像这个一样容易处理。;-)
如果用户已授予访问权限并使用您的应用程序会发生什么。在应用程序运行时,她执行多项任务并更改为 settings.app 以禁用位置服务;一般或专门针对您的应用程序。然后您已经检查了授权并使用位置更新,但突然您不再被授权。我想这正是您要问的情况,对吗?

于 2012-06-17T03:31:18.990 回答