CLLocationManager startMonitoringVisits在模拟器中不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CLLocationManager startMonitoringVisits在模拟器中不起作用相关的知识,希望对你有一定的参考价值。
我正在初始化访问监控
[self.locationManager startMonitoringVisits];
但是这个函数永远不会被调用
- (void)locationManager:(CLLocationManager *)manager
didVisit:(CLVisit *)visit
如果我用。替换初始化调用
[self.locationManager startMonitoringSignificantLocationChanges];
然后同一个代表开始接听此电话
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations
我正在使用ios 8模拟器,并使用不同的调试选项模拟位置,如高速公路驱动器,骑自行车,甚至尝试在等待几分钟后设置几个自定义位置。
我已经验证了位置设置并且看起来正确。位置管理器保存在强引用中。
此功能在模拟器中无法工作,因为除了“位置”监控(通过GPS,WiFi,Cell网络,接近传感器,BlueTooth点等等 - 大多数模拟器中不存在),它还采用了大量的启发式方法和逻辑,以确定“访问”是什么。
例如 - 你需要“搬家”到一个新的地方。然后“停留”一段时间(当然,您的位置读数会一直变化)。然后你必须“离开” - 离开那个地方至少一段时间和距离,以创造一个“访问”。
这些事情不会发生在模拟器上,因此 - 没有访问。
如果你访问Ray Wenderlich的网站,那里有一个教程,它演示了CLVisit的使用,并通过另一个API + GPTX资源文件(GPS位置和时间的路径,以及送到的模拟器)应用一种很好的方法来“伪造”访问模拟器。模拟器)。
以上是关于CLLocationManager startMonitoringVisits在模拟器中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
为啥'CLLocationManager.locationServicesEnabled()'默认为真?
Xcode 6 GM - CLLocationManager
CLLocationManager 和 CLGeoCoder
CLLocationManager:没有调用 didChangeAuthorization 和 didRangeBeacons