0

我有这样的事情:

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

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

在用户允许共享位置并且已找到位置后,如何设置执行流程的条件?

提前致谢。

4

1 回答 1

1

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

因此,您应该更新 UI 以向用户显示后台正在发生的事情。考虑使用一个UIActivityIndicatorView并且可能将userInteractionEnabled视图设置为 NO。此外,为用户提供取消操作的选项也是一个好习惯。

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

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

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

stopUpdatingLocation当您不再需要定位服务时拨打电话以节省电量。

于 2012-08-01T11:11:39.633 回答