用户允许共享和找到位置后继续处理

时间:2012-08-01 10:55:20

标签: ios asynchronous cllocationmanager

我有这样的事情:

CLLocationManager *locManager = [[CLLocationManager alloc] init];
locManager.delegate = self;
locManager.desiredAccuracy = kCLLocationAccuracyBest;
[locManager startUpdatingLocation];

但我需要低于纬度和经度用户。显然,尝试在 startUpdatingLocation 下面获取 locManager.coordinate 我的应用程序崩溃。

在用户允许共享位置并找到位置之后,如何制定条件来执行流程?

提前致谢。

1 个答案:

答案 0 :(得分:1)

致电startUpdatingLocation后,您可能需要一些时间才能找到位置。系统首先检查是否为应用程序启用了位置服务,并要求用户允许位置服务。首先需要打开GPS硬件。它需要一些时间来确定位置。

因此,您应该更新UI以向用户显示后台正在发生的事情。考虑使用UIActivityIndicatorView并将视图的userInteractionEnabled设置为NO。同样,最好为用户提供取消操作的选项。

在您的委托中,您必须实现以下两种方法:

– locationManager:didUpdateToLocation:fromLocation:
– locationManager:didFailWithError:

您可以在此处删除UIActivityIndicatorView并重新启用用户互动。 如果成功,您可以使用CLLocationManager的坐标来做任何您想做的事情。如果失败则显示错误警报。

当您不再需要位置服务时,请致电stopUpdatingLocation以节省电量。