我的行为很奇怪。我正在编写同时使用提取和位置背景模式的应用程序(不知道它对问题的重要性)。我使用委托正确设置了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/