从未调用过CLLocationManager回调(locationManager:didUpdateToLocation:fromLocation和locationManager:didFailWithError :)

时间:2012-06-01 11:08:59

标签: iphone ios location cllocationmanager

我正在尝试获取当前位置,而我正在解决此问题:

90%的时间aprox。只是它没关系:它获取位置并调用didUpdateToLocation:或它失败并调用didFailWithError:。一切都如预期的那样。

但有时(*总是在iOS 4.2模拟器中,有时在真正的iPhone 4S设备上),它根本无法获取位置而且它不会调用任何回调(有时它会调用didFailWithError但是2或3在开始更新位置后的几分钟,有时它永远不会这样做,所以我找不到一种方法来意识到这一点。

顺便说一下,设备/模拟器无法获取位置,因为当发生这种情况时,地图应用程序会获取该位置,无限期地显示动画活动轮。服务已启用,一切都配置良好,因为它可以在大多数时间运行。

所以,问题是:有没有办法让我了解这种情况并告知用户?

提前谢谢大家

1 个答案:

答案 0 :(得分:2)

我认为解决此问题的唯一方法是设置计时器并告知用户如果在合理的时间后(例如,20或30)没有调用任何委托方法,则无法获取位置修复秒)。然后致电stopUpdatingLocation,稍后再试。

我不知道是否记录了这种行为,但似乎无法保证您不会得到位置管理员的响应,因为它可能会在无法获得位置修复的状态下保留很长时间但也没有发现错误。