我的行为很奇怪。我正在编写同时使用提取和位置背景模式的应用程序(不知道它对问题的重要性)。我使用委托正确设置了CLLocationManager,并开始监视AppDelegate中的重要位置更改(startMonitoringSignificantLocationChanges)。
立即我得到了didUpdateLocations,它给了我一些位置。之后,不再触发任何事件,即使我在Xcode中模拟另一个位置(也使用GPX文件),甚至停止并重新启动监视。我在后台和前台都没有收到任何位置。

奇怪的是,如果我开始更新位置(使用GPS),则它可以正常工作(进行相同的测试...就像startMonitoringSignificantLocationChanges一样开始和停止)。显然,我同时做了didUpdateLocations和didFailWithError(我没有收到错误)。

这是我的初始化(通过我的AppDelegate didFinishLaunchWithOptions中对象的初始化来调用):

self.locationManager = [[CLLocationManager alloc] init];
self.locationManager.delegate = self;
self.locationManager.pausesLocationUpdatesAutomatically = NO;

我知道distanceFilter和准确性对于重大的位置更改并不重要,并且我已经将pausesLocationUpdatesAutomatically自动设置为NO。

我想念什么吗?还有是否存在一种读取位置是否来自wifi,蜂窝或gps的方法?

提前致谢。

最佳答案

您只能使用模拟器位置菜单中的“高速公路驱动器”选项来模拟模拟器上重大变化的位置。它会每隔几分钟触发一次。

关于iphone - startMonitoringSignificantLocationChanges,但过一会儿不再调用didUpdateLocations,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18919333/

10-09 15:35