0

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

大约 90% 的时间。它只是做得很好:它获取位置并调用didUpdateToLocation:,或者它失败并调用didFailWithError:。一切如预期。

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

顺便说一句,无法获取位置的是设备/模拟器,因为当发生这种情况时,地图应用程序也无法获取位置,无限期地显示动画活动轮。服务已启用,并且一切都配置良好,因为它在大多数情况下都可以正常工作。

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

谢谢大家

4

1 回答 1

2

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

我不知道是否记录了这种行为,但似乎不能保证您会从位置管理器那里得到响应,因为它可能会长时间处于无法获得位置修复但没有的状态观察错误,要么。

于 2012-06-01T12:24:41.467 回答