我有这样的事情:
CLLocationManager *locManager = [[CLLocationManager alloc] init];
locManager.delegate = self;
locManager.desiredAccuracy = kCLLocationAccuracyBest;
[locManager startUpdatingLocation];
但我需要低于纬度和经度用户。显然,尝试在 startUpdatingLocation 下面获取 locManager.coordinate 我的应用程序崩溃。
在用户允许共享位置并找到位置之后,如何制定条件来执行流程?
提前致谢。
答案 0 :(得分:1)
致电startUpdatingLocation
后,您可能需要一些时间才能找到位置。系统首先检查是否为应用程序启用了位置服务,并要求用户允许位置服务。首先需要打开GPS硬件。它需要一些时间来确定位置。
因此,您应该更新UI以向用户显示后台正在发生的事情。考虑使用UIActivityIndicatorView
并将视图的userInteractionEnabled
设置为NO。同样,最好为用户提供取消操作的选项。
在您的委托中,您必须实现以下两种方法:
– locationManager:didUpdateToLocation:fromLocation:
– locationManager:didFailWithError:
您可以在此处删除UIActivityIndicatorView
并重新启用用户互动。
如果成功,您可以使用CLLocationManager
的坐标来做任何您想做的事情。如果失败则显示错误警报。
当您不再需要位置服务时,请致电stopUpdatingLocation
以节省电量。