CLLocationManager startMonitoringVisits在模拟器中不起作用

问题描述 投票:1回答:1

我正在初始化访问监控

[self.locationManager startMonitoringVisits];

但是这个函数永远不会被调用

- (void)locationManager:(CLLocationManager *)manager
               didVisit:(CLVisit *)visit

如果我用。替换初始化调用

[self.locationManager startMonitoringSignificantLocationChanges];

然后同一个代表开始接听此电话

- (void)locationManager:(CLLocationManager *)manager
     didUpdateLocations:(NSArray *)locations

我正在使用iOS 8模拟器,并使用不同的调试选项模拟位置,如高速公路驱动器,骑自行车,甚至尝试在等待几分钟后设置几个自定义位置。

我已经验证了位置设置并且看起来正确。位置管理器保存在强引用中。

ios8 cllocationmanager
1个回答
0
投票

此功能在模拟器中无法工作,因为除了“位置”监控(通过GPS,WiFi,Cell网络,接近传感器,BlueTooth点等等 - 大多数模拟器中不存在),它还采用了大量的启发式方法和逻辑,以确定“访问”是什么。

例如 - 你需要“搬家”到一个新的地方。然后“停留”一段时间(当然,您的位置读数会一直变化)。然后你必须“离开” - 离开那个地方至少一段时间和距离,以创造一个“访问”。

这些事情不会发生在模拟器上,因此 - 没有访问。

如果你访问Ray Wenderlich的网站,那里有一个教程,它演示了CLVisit的使用,并通过另一个API + GPTX资源文件(GPS位置和时间的路径,以及送到的模拟器)应用一种很好的方法来“伪造”访问模拟器。模拟器)。

© www.soinside.com 2019 - 2024. All rights reserved.