2

我已经按照“ Session 303 - 从定位服务保持正轨” WWDC 2012中的 AutoPause 示例

在示例中,您可以看到 AutoPause 是如何启用的,并且有两个方法被调用:

-(void) locationManagerDidPauseLocationUpdates:(CLLocationManager *)manager
-(void) locationManagerDidResumeLocationUpdates:(CLLocationManager *)manager

我做了同样的例子,但这些方法从来没有被调用过。谁试过同样的方法?

4

2 回答 2

6

我现在正在对此进行试验,以下是我的观察结果:

在 iPhone 4上,这根本不起作用。即使您将 pausesLocationUpdatesAutomatically 设置为 YES,它也会将 pausesLocationUpdatesAutomatically 设置为 NO(0)。没有警告,这是什么 API 设计反模式!

iPhone 5 pausesLocationUpdatesAutomatically 默认为 YES (1)。并调用 locationManagerDidPauseLocationUpdates。我在调用 locationManagerDidResumeLocationUpdates 时运气不好。我也很困惑,如果 GPS 关闭,这将如何调用?一旦用户到达下一个网络单元,它会被调用吗?即使那不是我的经验,也从来没有被称为。

到目前为止,在我看来,这是 iOS6 中一致性最差的变化之一。对于所有场景,我可能只使用 pausesLocationUpdatesAutomatically = NO,并希望在 iOS6 的所有型号上都能正常工作。

[更新 - 2013 年 3 月 4 日]。我查看了 Apple 关于 iOS6 中位置更改的演示文稿,他们建议在收到区域更改事件后使用区域更改监控来“取消暂停”。虽然这不适合我的场景,因为用户可能会去/跑步/开车一两公里,直到发生这样的事件。

于 2012-10-30T13:03:02.057 回答
1

我遇到了同样的问题,发现您必须将属性设置pausesLocationUpdatesAutomaticallyYES

于 2012-10-23T15:28:28.113 回答