如果CLLocationManager在我的应用程序中半工作。我启动了locationManager,设置了委托和准确性。但是一旦位置经理开始我的地图就会在一些海洋中显示我?
有没有办法知道CLLocationManager何时有锁?
我有以下方法设置,但除非我走了几步,否则不会调用它。
-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations
我已经确认它全部在主线程上运行。
答案 0 :(得分:2)
查看horizontalAccuracy
中收到的CLLocation
个对象的didUpdateLocations
属性。在设备上,当您首次启动定位服务时,您经常会注意到一系列位置的horizontalAccuracy
值越来越低(即位置值越来越准确)。这不是一个问题,它是什么时候锁定在",而是什么时候你会收到一个horizontalAccuracy
的位置,这个位置对于你的应用来说足够小。< / p>
就移动前未被调用的方法而言,这通常是您使用的desiredAccuracy
和distanceFilter
值的函数。
答案 1 :(得分:1)
CLLocationManager中没有 lock ,
这取决于您为位置管理员设置的属性
检查您的位置管理员的这些属性
distanceFilter :设备在生成更新事件之前必须水平移动的最小距离(以米为单位)。
desiredAccuracy :位置数据的准确性。
您可以使用类方法 locationServicesEnabled 检查位置服务,以检查设备上是否启用了位置服务。