iphone - startMonitoringSignificantLocationChanges 但一段时间后 didUpdateLocations 不再被调用

标签 iphone ios objective-c core-location

我有一个非常奇怪的行为。我正在编写一个同时使用获取和位置后台模式的应用程序(不知道这对问题很重要)。我使用委托(delegate)正确设置了 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/

相关文章:

iphone - 每个部分的 iOS UICollectionView 单元格选择

objective-c - 检查 NSData 对象中的位

iOS 通话指示器正在下推 View /内容,修改 Root View `frame`

iphone - 在 iPhone 中根据触摸拖动旋转图像

iphone - OpenGL ES - 如何绘制填充多边形?

iphone - 某些 iPhone 4s 和 iPod Touch 上的随机 img 保存错误

ios - 2011年Mac的发展

iphone - 如何在xcode中调用多个web服务

iphone - 左侧的 UITableView 图像

ios - 在 Storyboard (iOS) 中添加/删除特定大小类的约束